我希望我的Web应用程序在没有菜单栏,地址栏等的窗口中运行。我有一个Default.html页面,在此页面中我单击“运行应用程序”按钮,首先使用{在另一个窗口中打开我的应用程序{1}}然后使用带有window.open
参数的window.open
打开“AutoClose.html”来关闭当前窗口
default.html中
_self
AutoClose.html
<html>
<head>
<script type="text/javascript">
function runApp() {
// Open my application
window.open('Application.html', null, 'status:no;dialogHide:true;help:no;scroll:yes;center=yes;');
// Close this window
window.open('AutoClose.html', '_self');
}
</script>
</head>
<body>
<input type="button" value="Run Application" onclick="runApp();" />
</body>
</html>
我的应用程序应支持IE,Firefox和Chrome,我的代码在IE和Chrome上运行良好,但由于“脚本可能无法关闭脚本未打开的窗口”警告,因此无法关闭Firefox上的第一个窗口。在Firefox上,它打开AutoClose.html,但此页面中的<html>
<head>
<script type="text/javascript">
window.close();
</script>
</head>
<body></body>
</html>
调用只会导致“脚本可能无法关闭脚本未打开的窗口”警告并且窗口未关闭。顺便说一下,我的应用程序窗口打开没有任何问题(没问题)。
似乎将window.close()
与window.open()
参数技巧一起使用对Firefox不起作用。因为我的目标是在没有菜单栏,地址栏等的窗口中运行应用程序。
_self
(至少对于Firefox)?然后我不需要运行window.open()
window.close()
适用于“在Firefox上没有通过javascript打开的窗口”?提前致谢。
更新:这是一个银行应用程序,我只是一个开发人员而不是决策者。换句话说,某种分析师希望应用程序以这种方式工作。我不是在质疑它。所以“你要做的全部事情都是完全错误的”,答案不会真正有用。
答案 0 :(得分:10)
你无法在firefox中关闭当前窗口,因为你没有打开它。将AutoClose.html加载到其中并不重要。
但是这与windows的整个业务毫无意义。大多数人将其浏览器设置为在新选项卡中打开新窗口,并且您无法在选项卡窗口中阻止菜单栏等。
如果你因为我使用你的应用程序而关闭窗口,我个人会非常恼火。
它可能是用户打开的唯一窗口 - 在这种情况下,您只需关闭浏览器。可能是他们想要按回来,关闭标签会使他们烦恼。
来自firefox的这个错误是正确的,如果它在Chrome中有效,这是一个严重的错误,你应该报告它。
答案 1 :(得分:5)
简单地说,
open(location, '_self').close();
答案 2 :(得分:1)
基本问题是你的需求设置者要求你做的事情被Firefox明确阻止:
基本上,用户在浏览器中有其他东西而不仅仅是你的银行用品。因此,假设其他情况或多或少注定要失败。
你有什么方法可以推翻不合理的要求吗?
答案 3 :(得分:1)
这对我有用。
我在jQuery UI对话框中单击按钮时用它来关闭窗口。
open(location, '_self').close();