是否可以使用JavaScript关闭Firefox 2.0中的父窗口。我有一个打开另一个窗口的父页面,我需要在说10秒后关闭父窗口。 我尝试过Firefox调整“dom.allow_scripts_to_close_windows”,尝试延迟但似乎没有任何效果。
任何帮助都将非常感激。
由于
答案 0 :(得分:5)
出于安全原因,仅使用开启者对象可能并不总是关闭父窗口。 你能做的是:
在父级上,有一个名为closeWindowFromChild()的函数:
function closeWindowFromChild() { this.window.close(); }
在孩子身上,当你想要关闭窗口时:
function closeParentWindow() { opener.closeWindowFromChild(); }
这应该可以正常工作。 :-D
答案 1 :(得分:3)
从quirksmode剪下来(编辑:根据Diodeus的建议添加了一些背景信息):
理论上
opener.close()
应该是弹出窗口中的代码:关闭已打开此弹出窗口的窗口。
但是,在某些浏览器中,不允许自动关闭JavaScript尚未打开的窗口。上面这行在Mac,Mozilla,Opera和OmniWeb上的资源管理器中运行良好,但在Windows,Netscape 4及更低版本和iCab上的资源管理器中没有。在这些浏览器中,要求用户确认关闭窗口。至于Safari,它什么都没做。
令我惊讶的是,在Windows上的Explorer 5.5和6中很容易绕过这个确认框。资源管理器仅查看页面是否有开启者。如果没有,用户已打开窗口,未经确认就不能关闭。所以我们需要做的就是让资源管理器认为开头页面有一个开场白:
opener.opener = top; // or whatever, as long as opener.opener has a value;
opener.close()
这个技巧在Netscape 4及更低版本和iCab中不起作用,这些浏览器有更复杂的方法来确定是否已经通过JavaScript打开了一个窗口。
答案 2 :(得分:2)
通常,您无法使用javascript关闭自己未打开的窗口。