当没有向弹出窗口添加任何JavaScript代码时关闭弹出窗口是否有任何方法可以刷新父窗口?当弹出窗口关闭时刷新父窗口
我有一个页面parent.php,用户可以点击“打开弹出”打开一个弹出窗口。该弹出窗口显示了一些Flash内容和我不可能像
window.onunload = function(){
window.opener.location.reload();
};
添加一些弹出窗口页面标记。
有没有其他方法可以实现这一点? 感谢
当没有向弹出窗口添加任何JavaScript代码时关闭弹出窗口是否有任何方法可以刷新父窗口?当弹出窗口关闭时刷新父窗口
我有一个页面parent.php,用户可以点击“打开弹出”打开一个弹出窗口。该弹出窗口显示了一些Flash内容和我不可能像
window.onunload = function(){
window.opener.location.reload();
};
添加一些弹出窗口页面标记。
有没有其他方法可以实现这一点? 感谢
为了使这项工作在所有主要浏览器,你需要处理在弹出unload
事件处理程序,在主窗口中重新加载。在主窗口,添加
function popUpClosed() {
window.location.reload();
}
在弹出:
window.onunload = function() {
if (window.opener && !window.opener.closed) {
window.opener.popUpClosed();
}
};
所以回答你的问题一般是否定的,如果你需要你的代码在所有浏览器的工作,特别是IE 。
我敢肯定,你可以再补充这parent.php:
var myPop = "pop up window selector"
myPop.onunload = function(){
location.reload();
};
有类似的问题检测父窗口中的关闭弹出窗口。我认为原因是 没有设置document.domain属性。
任何方式加入到添下回答了窗口和弹出这样document.domain属性:
<script type="text/javascript">
document.domain='<?=$_SERVER['SERVER_NAME']?>';
</script>
代替
window.onunload = function() {
if (window.opener && !window.opener.closed) {
window.opener.popUpClosed();
}
};
我在弹出的使用和:
<body onunload="window.opener.popUpClosed();">
Tim Down的方法存在的问题是它不能回答原来的问题。要求是你不能添加任何代码到弹出窗口。
我找到的一个解决方案虽然不是特别优雅,但在我测试过的所有浏览器中都很有效。
您将只是简单地轮询新创建的窗口对象,检查它是否仍然打开。
在父窗口:
var register;
var poll;
function isOpen(){
if(register.closed){alert("Closed!"); clearInterval(poll);}
}
function create(){
register = window.open("http://www.google.com","register","width=425,height=550");
poll=setInterval("isOpen()",100); //Poll every 100 ms.
}
你试图在onunload的处理程序添加到从父窗口的弹出式窗口的句柄? – Gordon 2010-11-24 14:28:38
@戈登 - 对不起? – Kay 2010-11-24 14:30:10
like benhowdle below below – Gordon 2010-11-24 14:42:19