在父窗口上创建一个数组来记录每个打开的dialog,使用命名键来索引窗口,如(父窗口中):
var arrFriend = new Array(); //窗口数组全局变量function openWin(argName){
var arrArgument = new Array(); //传递的参数,局部变量
if(arrFriend[argName]){
alert("此朋友的窗口已打开");
return;
}
arrArgument["name"] = argName; //John is friend's name
arrArgument["window"] = window; //父窗口对象
arrFriend[argName] = window.showModelessDialog("xxx.html",arrArgument,"");
}
在关闭这个dialog窗口时清除数组中的相应变量即可:
(dialog中)
window.onclose = clear;
function clear(){
var arrArgument = window.dialogArguments;
arrArgument["window"].arrFriend[arrArgument["name"]] = null;
}
需要注意的是openWin中我传递的是name,这并不安全(有可能friend的名字相同),安全的做法是这个参数使用唯一关键字来定义每个窗口的数组键名。
var arrFriend = new Array(); //窗口数组全局变量function openWin(argName){
var arrArgument = new Array(); //传递的参数,局部变量
if(arrFriend[argName]){
alert("此朋友的窗口已打开");
return;
}
arrArgument["name"] = argName; //John is friend's name
arrArgument["window"] = window; //父窗口对象
arrFriend[argName] = window.showModelessDialog("xxx.html",arrArgument,"");
}
在关闭这个dialog窗口时清除数组中的相应变量即可:
(dialog中)
window.onclose = clear;
function clear(){
var arrArgument = window.dialogArguments;
arrArgument["window"].arrFriend[arrArgument["name"]] = null;
}
需要注意的是openWin中我传递的是name,这并不安全(有可能friend的名字相同),安全的做法是这个参数使用唯一关键字来定义每个窗口的数组键名。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货