mas*_*san 7 javascript popupwindow
我有parent window (opener)和child (popup)
---------- --------------
| | | |
| parent | -----> opens popup | child |
| | | |
----------- --------------
Run Code Online (Sandbox Code Playgroud)
比方说,在父页面中,我有js函数 hello()
为了让子窗口关闭时调用父级的hello()并传递参数,我可以这样做,
window.close();
window.opener.hello(someArgument);
Run Code Online (Sandbox Code Playgroud)
这将关闭窗口并调用parent的hello();
但是如果我不想在子页面中使用代码window.opener.hello()呢?我的意思是我希望代码只在父页面中
我能想到的一件事是:
有些父母知道孩子何时关闭(事件监听器???在js中不确定)但在这种情况下如何接收参数?(即从孩子那里得到的一些数据)
显而易见的解决方案(向onunload弹出窗口对象添加事件处理程序属性)在IE中不起作用.但是,使用attachEvent在IE中工作,所以以下将完成工作:
var win = window.open("popup.html");
function doStuffOnUnload() {
alert("Unloaded!");
}
if (typeof win.attachEvent != "undefined") {
win.attachEvent("onunload", doStuffOnUnload);
} else if (typeof win.addEventListener != "undefined") {
win.addEventListener("unload", doStuffOnUnload, false);
}
Run Code Online (Sandbox Code Playgroud)
如果您希望弹出窗口将信息传递到主窗口,我建议在弹出窗口的window对象中放置一个属性(例如window.someValue = 5;).在doStuffOnUnload(),你可以拿起那个属性:alert(win.someValue);
| 归档时间: |
|
| 查看次数: |
6872 次 |
| 最近记录: |