我使用top.window.close()来关闭父窗口,但它在Mozilla firefox中不起作用。请建议替代方案。 上面的代码适用于IE6。
答案 0 :(得分:6)
只允许对使用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()