以下代码在加载页面时生成javascript弹出窗口,然后在父窗口关闭时关闭弹出窗口。
<script language="JavaScript">
var player;
function load() {
player = window.open('http://www.google.com','player','height=320,width=320,scrollbars,resizable');
}
function unload() {
player.close();
}
window.onload = load;
window.onunload = unload;
</script>
这样可以正常工作,但在网站上切换页面时会关闭弹出窗口。有没有什么方法可以改变它以保持弹出窗口,直到实际的URL /站点窗口关闭?
答案 0 :(得分:1)
我认为你必须从孩子那里检查父窗口的状态,而不是相反。
此代码尚未经过测试,但我正在尝试这个概念:
window.opener.onunload =
setTimeout(
function(){
if (!window.opener) self.close();
}, 1000);
答案 1 :(得分:0)
简短回答是否定的,挂钩关闭窗口的事件的唯一方法是onunload
,当文档被卸载时(例如当你导航到另一个页面时)会触发。
也许您可以在弹出窗口(使用计时器或onfocus)上检查window.opener
,以检查发起弹出窗口的窗口是否仍然存在,然后关闭弹出窗口(如果不存在)。
答案 2 :(得分:0)
这可能会对您有所帮助:
<script language="Javascript">
var player;
function load() {
player = window.open('http://www.google.com','player','height=320,width=320,scrollbars,resizable');
}
function unload() {
if (!(window.location.equals('http://yourSiteName.com'))) {
player.close();
}
}
window.onload = load();
window.onunload = unload();
</script>