使用javascript关闭脚本未打开的窗口

Meh*_*taş 7 javascript firefox

我希望我的Web应用程序在没有菜单栏,地址栏等的窗口中运行.我有一个Default.html页面,在此页面中我单击"运行应用程序"按钮,首先在另一个窗口中打开我的应用程序window.open,然后关闭使用window.openwith _self参数打开"AutoClose.html"的当前窗口

default.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>
Run Code Online (Sandbox Code Playgroud)

AutoClose.html

<html>
<head>
<script type="text/javascript">
    window.close();
</script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的应用程序应支持IE,Firefox和Chrome,我的代码在IE和Chrome上工作正常,但由于"脚本可能无法关闭脚本未打开的窗口"警告,因此无法关闭Firefox上的第一个窗口.在Firefox上它打开AutoClose.html但是window.close()在此页面中调用只会导致"脚本可能无法关闭脚本未打开的窗口"警告并且窗口未关闭.顺便说一句,我的应用程序窗口打开没有任何问题(没有问题).

看来,使用window.open()带有_self参数的伎俩Firefox没有工作.因为我的目标是在没有菜单栏,地址栏等的窗口中运行应用程序.

  1. 有没有办法隐藏地址栏,菜单栏没有使用window.open()(至少对于Firefox)?然后我不需要跑window.close()
  2. 在Firefox上是否有任何设置可以禁止"脚本可能无法关闭脚本未打开的窗口"警告?"允许脚本关闭未通过脚本打开的窗口"设置会很棒(:
  3. window.close()在Firefox上有没有办法让"使用javascript的脚本无法打开的窗口"工作?
  4. 或者,还有其他建议(:

提前致谢.

更新:这是一个银行应用程序,我只是一个开发人员而不是决策者.换句话说,某种分析师希望应用程序以这种方式工作.我不是在质疑它.所以"你要做的全部事情是完全错误的"答案不会真正有用.

Ari*_*iel 9

您无法关闭Firefox中的当前窗口,因为您没有打开它.将AutoClose.html加载到其中并不重要.

但这与windows的整个业务毫无意义.大多数人将其浏览器设置为在新选项卡中打开新窗口,并且您无法在选项卡窗口中阻止菜单栏等.

如果你因为我使用了你的申请而关闭我的窗户,我个人会非常恼火.

它可能是用户打开的唯一窗口 - 在这种情况下,您只需关闭浏览器.可能是他们想要回压,关闭标签会使他们烦恼.

来自firefox的这个错误是正确的,如果它在Chrome中有效,这是一个严重的错误,你应该报告它.


小智 5

只是,

open(location, '_self').close();
Run Code Online (Sandbox Code Playgroud)

  • 这不关闭窗口,它只是擦除页面的内容. (10认同)
  • 这在 Firefox 72.0 上不起作用 (2认同)