关闭fireFox中的父窗口

时间:2008-12-05 12:59:42

标签: javascript firefox

是否可以使用JavaScript关闭Firefox 2.0中的父窗口。我有一个打开另一个窗口的父页面,我需要在说10秒后关闭父窗口。 我尝试过Firefox调整“dom.allow_scripts_to_close_windows”,尝试延迟但似乎没有任何效果。

任何帮助都将非常感激。

由于

3 个答案:

答案 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关闭自己未打开的窗口。