如何使用javascript关闭firefox中的窗口?

时间:2010-12-27 07:25:50

标签: javascript

我使用top.window.close()来关闭父窗口,但它在Mozilla firefox中不起作用。请建议替代方案。 上面的代码适用于IE6。

4 个答案:

答案 0 :(得分:6)

From MDC

只允许对使用window.open方法由脚本打开的窗口调用此方法。如果脚本未打开窗口,则JavaScript中会出现以下错误控制台:脚本可能无法关闭脚本未打开的窗口。

因此,如果您尝试打开弹出窗口并打算稍后关闭它,则需要从JavaScript执行此操作,而不是使用链接的target属性,根据文档。但是,似乎使用target="_blank"target="foo"打开的窗口实际上都关闭了(在Firefox 3.6.13上尝试过)。

但是,无论您做什么,都无法关闭用户使用“新建标签/窗口”直接打开的窗口/标签页(至少在默认浏览器设置下)。

答案 1 :(得分:1)

请注意,您可以通过在window.close中将dom.allow_scripts_to_close_windows设置为true来告知Firefox允许about:config

bug 190515进一步讨论了使用window.close的能力。

答案 2 :(得分:0)

这就是我正在使用的:

<head>
<script language="javascript" >
function ddd() {

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");

window.open('http://www.google.com','mywindow','width=400,height=200');
window.close();
}
</script> 
</head>
<body>
<input type= "button" name="new" value="New Window" onClick="ddd()">
</body>

答案 3 :(得分:0)

如果您使用的是firefox配置文件,则可以实现它。 在firefox配置文件中对其进行更新后,就可以关闭使用同一配置文件打开的firefox。

echo 'user_pref("dom.allow_scripts_to_close_windows", true);' >> $MOZILLA_PROFILE_DIR/prefs.js

如果将其添加到user.js(需要在firefox配置文件目录中创建),它也可以工作。

touch $MOZILLA_PROFILE_DIR/user.js
echo 'user_pref("dom.allow_scripts_to_close_windows", true);' >> $MOZILLA_PROFILE_DIR/user.js

然后使用配置文件启动Firefox。您将可以使用javascript关闭窗口 window.close()

记住:没有这个,您就无法使用window.open()

关闭尚未打开的窗口