window.close()不起作用 - 脚本可能只关闭由它打开的窗口

may*_*ito 30 javascript keyboard-shortcuts window shortcut

当我试图通过window.close()Javascript 的方法关闭窗口时,我总是遇到问题,而浏览器在控制台上显示以下消息:

"Scripts may close only the windows that were opened by it."
Run Code Online (Sandbox Code Playgroud)

这发生在页面的每个部分.我可以直接使用链接,按钮或脚本运行此命令,但始终显示此消息.

我试图替换window.close();下面的函数(或其变体)的方法,但没有发生任何事情:

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

may*_*ito 13

我通过 Google 和 Stack Overflow 上搜索了许多网页,但没有任何建议可以解决我的问题。

经过多次尝试,我改变了测试该控制器的方式。然后我发现问题总是在我通过Ctrl + Shift + TChrome中的快捷方式重新打开页面时发生。所以页面运行了,但没有父窗口引用,因为它无法关闭。


som*_*ere 10

错误消息没有比这更清楚:

"Scripts may close only the windows that were opened by it."
Run Code Online (Sandbox Code Playgroud)

如果您的脚本没有启动打开窗口(使用window.open之类的东西),则不允许该窗口中的脚本关闭它.它可以防止网站控制您的浏览器并关闭窗口.

  • 然而,它也阻止了窗户关闭自己,这*看起来不是一个非常有用的安全措施,而且我相对肯定99%的人都发现了这一点. (10认同)
  • @donatJ - 它很有用,因为它可以阻止网站破坏您正在使用的窗口及其后退按钮,该按钮可以指向其他网站。 (3认同)

and*_*rex 7

您无法关闭当前窗口或使用“_self”打开的任何窗口或页面,但您可以这样做

var customWindow = window.open('', '_blank', '');
    customWindow.close();
Run Code Online (Sandbox Code Playgroud)