当我尝试通过Javascript的window.close()
方法关闭窗口时,我总是遇到问题,而浏览器在控制台上显示以下消息:
"Scripts may close only the windows that were opened by it."
这发生在页面的每个部分。我可以直接使用链接,按钮或脚本运行此命令,但始终会显示此消息。
我试图替换下面的函数(或其变体)的window.close();
方法,但没有再发生任何事情:
window.open('', '_self', '');
window.close();
答案 0 :(得分:9)
错误消息不会比这更清楚:
"Scripts may close only the windows that were opened by it."
如果您的脚本没有启动打开窗口(使用window.open之类的东西),则不允许该窗口中的脚本关闭它。它可以防止网站控制您的浏览器并关闭窗口。
答案 1 :(得分:4)
我通过Google搜索了很多网页,并在Stack Overflow上搜索,但没有任何建议解决了我的问题。
经过多次尝试和"踢",我改变了测试控制器的方式。然后我发现问题一直发生在我重新打开Chrome浏览器中Ctrl + Shift + T
快捷方式的页面。所以页面运行了,但没有父窗口引用,因为这不能被关闭。
答案 2 :(得分:3)
您无法关闭当前窗口或使用“_self”打开的任何窗口或页面 但你可以这样做
var customWindow = window.open('', '_blank', '');
customWindow.close();
答案 3 :(得分:0)
以下代码对我有用:)
window.open('your current page URL', '_self', '');
window.close();
这不起作用。有些网站工作正常。但对于youtube.com和yahoo.com网站等,上述应用程序代码无效。请提出任何想法。
答案 4 :(得分:0)
windows 对象有一个 windows 字段,它被克隆并存储打开窗口的日期,应该在这个字段上调用 close:
window.open("", '_self').window.close();
答案 5 :(得分:-1)
凌乱但对我有用。
window.close();
setTimeout(() => {window.close();}, 2000);
setTimeout(() => {window.close();}, 4000);