// JavaScript Document
/***********************************************
* 打开窗口,并且接收从窗口发送的数据。
* 支持showModalDialog和open
*
*
*
*
***********************************************/
var RHOpenConfig = {
OpenMode: 1, //模式定义 1:open; 2:showModalDialog; 3:
ReturnInput: 'RHOpenHiddenReturn'
};
var RHOpenReturnList = [];
function RHOpen(url, vArguments, winPara) { switch (RHOpenConfig.OpenMode) {
case 1:
RHOpenModeOpen(url, vArguments, winPara);
break;
case 2:
case 3:
default:
RHOpenModeDialog(url, vArguments, winPara);
break;
}
}function RHOpenModeOpen(url, vArguments, winPara) {
//alert(url);
// if(url.EndWith('&')){
// url += 'returninput=' + RHOpenConfig.ReturnInput;
// }else{
// url += '&returninput=' + RHOpenConfig.ReturnInput;
// }
//alert(!window.IsNoOpen);
//alert(!window.IsNoOpen && window.IsNoOpen != null);
//alert(!window.IsNoOpen && window.IsNoOpen != null && window.IsNoOpen != 0); if (!window.IsNoOpen && window.IsNoOpen != null && window.IsNoOpen != 0) {
//退出 return;
} window.IsNoOpen = 10;
if (winPara == "") {
winPara = "alwaysRaised=yes,z-look=yes,location=no";
}
else {
winPara = winPara + ",alwaysRaised=yes,z-look=yes,location=no";
// alert(winPara);
} var WindowName = 'RHOpen' + location.hostname + '_' + location.port;
try {
window.open(url, WindowName, winPara); //第一种写法,需要在每个弹出页面添加window.focus(); 来实现弹出窗口始终被打开
//var vOwn = window.open(url, "_blank", winPara); //第二种写法,不用再每个页面添加window.focus(); 只需改为这种写法
//vOwn.document.title = WindowName;
}
catch (e) {
try {
window.open(url, 'RHOpen', winPara);
//var vOwn = window.open(url, "_blank", winPara);
//vOwn.document.title = WindowName;
}
catch (e) {
window.open(url, '', winPara);
} }
//计时器
setTimeout("SetOpenZiWindow()", 5000)
}//是否打开子窗口 如果0,则不打开
function SetOpenZiWindow() {
if (window.IsNoOpen = 0) {
return;
}}function RHOpenModeDialog(url, vArguments, winPara) {
var ReturnValue;
if (2 == RHOpenConfig.OpenMode) {
ReturnValue = window.showModalDialog(url, vArguments, winPara);
} else {
ReturnValue = window.showModelessDialog(url, vArguments, winPara);
} RHOpenReturnHandle(ReturnValue);
}
//需要对返回值进行处理,就继续
function RHOpenReturnHandle(returnValue) {
for (var i = 0; i < RHOpenReturnList.length; i++) {
RHOpenReturnList[i].call(document, returnValue);
}
}
function RHOpenAddReturn(fn) {
RHOpenReturnList.push(fn);
}$(document).ready(function () {
if (null != $('#RHOpenHiddenReturn')) {
$(document).add('<input type="hidden" id="RHOpenHiddenReturn" />');
}
var HasOpener = false;
//如果是弹出页面超时,那么就关闭弹出页面,并且刷新主页面。
if (null != window.opener) {
try {
if (window.opener.location) {
HasOpener = true;
}
} catch (ex) { }
}
if (HasOpener) {
window.opener.IsNoOpen = 0;
//self.close();
}
});
function RHClose(val) {
//alert('RHClose(val) ' + val);
switch (RHOpenConfig.OpenMode) {
case 1:
window.opener.RHOpenReturnHandle(val);
break;
case 2:
case 3:
default:
if (window.opener != undefined) {
//for chrome 在提交之后不能返回值
window.opener.RHOpenReturnHandle(val);
//alert('chrome');
}
else {
window.returnValue = val;
}
break;
}
window.close();
}上面是我的代码,麻烦各位大虾帮忙看看JavaScript
/***********************************************
* 打开窗口,并且接收从窗口发送的数据。
* 支持showModalDialog和open
*
*
*
*
***********************************************/
var RHOpenConfig = {
OpenMode: 1, //模式定义 1:open; 2:showModalDialog; 3:
ReturnInput: 'RHOpenHiddenReturn'
};
var RHOpenReturnList = [];
function RHOpen(url, vArguments, winPara) { switch (RHOpenConfig.OpenMode) {
case 1:
RHOpenModeOpen(url, vArguments, winPara);
break;
case 2:
case 3:
default:
RHOpenModeDialog(url, vArguments, winPara);
break;
}
}function RHOpenModeOpen(url, vArguments, winPara) {
//alert(url);
// if(url.EndWith('&')){
// url += 'returninput=' + RHOpenConfig.ReturnInput;
// }else{
// url += '&returninput=' + RHOpenConfig.ReturnInput;
// }
//alert(!window.IsNoOpen);
//alert(!window.IsNoOpen && window.IsNoOpen != null);
//alert(!window.IsNoOpen && window.IsNoOpen != null && window.IsNoOpen != 0); if (!window.IsNoOpen && window.IsNoOpen != null && window.IsNoOpen != 0) {
//退出 return;
} window.IsNoOpen = 10;
if (winPara == "") {
winPara = "alwaysRaised=yes,z-look=yes,location=no";
}
else {
winPara = winPara + ",alwaysRaised=yes,z-look=yes,location=no";
// alert(winPara);
} var WindowName = 'RHOpen' + location.hostname + '_' + location.port;
try {
window.open(url, WindowName, winPara); //第一种写法,需要在每个弹出页面添加window.focus(); 来实现弹出窗口始终被打开
//var vOwn = window.open(url, "_blank", winPara); //第二种写法,不用再每个页面添加window.focus(); 只需改为这种写法
//vOwn.document.title = WindowName;
}
catch (e) {
try {
window.open(url, 'RHOpen', winPara);
//var vOwn = window.open(url, "_blank", winPara);
//vOwn.document.title = WindowName;
}
catch (e) {
window.open(url, '', winPara);
} }
//计时器
setTimeout("SetOpenZiWindow()", 5000)
}//是否打开子窗口 如果0,则不打开
function SetOpenZiWindow() {
if (window.IsNoOpen = 0) {
return;
}}function RHOpenModeDialog(url, vArguments, winPara) {
var ReturnValue;
if (2 == RHOpenConfig.OpenMode) {
ReturnValue = window.showModalDialog(url, vArguments, winPara);
} else {
ReturnValue = window.showModelessDialog(url, vArguments, winPara);
} RHOpenReturnHandle(ReturnValue);
}
//需要对返回值进行处理,就继续
function RHOpenReturnHandle(returnValue) {
for (var i = 0; i < RHOpenReturnList.length; i++) {
RHOpenReturnList[i].call(document, returnValue);
}
}
function RHOpenAddReturn(fn) {
RHOpenReturnList.push(fn);
}$(document).ready(function () {
if (null != $('#RHOpenHiddenReturn')) {
$(document).add('<input type="hidden" id="RHOpenHiddenReturn" />');
}
var HasOpener = false;
//如果是弹出页面超时,那么就关闭弹出页面,并且刷新主页面。
if (null != window.opener) {
try {
if (window.opener.location) {
HasOpener = true;
}
} catch (ex) { }
}
if (HasOpener) {
window.opener.IsNoOpen = 0;
//self.close();
}
});
function RHClose(val) {
//alert('RHClose(val) ' + val);
switch (RHOpenConfig.OpenMode) {
case 1:
window.opener.RHOpenReturnHandle(val);
break;
case 2:
case 3:
default:
if (window.opener != undefined) {
//for chrome 在提交之后不能返回值
window.opener.RHOpenReturnHandle(val);
//alert('chrome');
}
else {
window.returnValue = val;
}
break;
}
window.close();
}上面是我的代码,麻烦各位大虾帮忙看看JavaScript
解决方案 »
- 如何向网页传入很多的数据?
- 加载图片的问题
- 请问这种JS的定义类的方法出错在哪里?
- 请js高手帮忙
- 我是菜鸟,专门注册个账号问高手一个html转JS代码的问题。
- 在TEXTAREA中鼠标选中的内容不可删,也不可改动
- 我想请教一个DHTML的问题,分虽不多,为了民族的掘起请大家多多支持一下,感谢!
- 如何在弹出一个新窗口得同时自动关闭旧窗口
- 怎样使用正规表达式来使得只能输入不以0开头的整数?
- 在bootstrap导航条中,在script中为了实现当前选择项高亮显示,导致href中的跳转链接失效了
- 对input【text】的值在jquery中的html()方法在Firefox中得出来为空
- 关于Extjs柱形图,无法渲染
噢,如果是按钮,在第一次触发后给其加一个disabled="disabled"属性,这样第二次,往后就不会运行事件处理函数了
噢,如果是按钮,在第一次触发后给其加一个disabled="disabled"属性,这样第二次,往后就不会运行事件处理函数了有没有科学点的方法
噢,如果是按钮,在第一次触发后给其加一个disabled="disabled"属性,这样第二次,往后就不会运行事件处理函数了有没有科学点的方法
只要让事件只执行一次就可以。在这主题之下的办法随你想,你想要的科学
if (!window.IsNoOpen && window.IsNoOpen != null && window.IsNoOpen != 0) {
//退出
return;
}
改为
if (window.IsNoOpen && window.IsNoOpen>0) {
//退出
return;
}