ZBLOG

VM109:1 Scripts may close only the windows that were opened by them.

这个错误信息表示 JavaScript 脚本只能关闭由脚本自己打开的窗口。在大多数现代浏览器中,为了安全和用户体验,限制了脚本关闭那些不是通过 window.open() 方法打开的窗口。

解释

  1. 安全性:为了防止恶意网站强行关闭用户在浏览器中打开的标签页或窗口,浏览器实现了这一限制。

  2. 行为示例

    • 如果你使用 window.open('url') 打开一个新窗口,然后在那个新窗口中运行 window.close(),这将是有效的。
    • 如果你尝试关闭一个用户手动打开的标签页或另一个由不同脚本/来源打开的标签页,则会抛出这个错误。

解决方案

如果需要关闭当前窗口,可以确保它是通过脚本打开的。否则,你可能需要重新考虑用户体验设计,并让用户手动关闭窗口。

示例代码

如果你想要确认你的代码正常工作,可以先创建一个按钮,用于打开新的窗口,然后再在该新窗口中添加关闭功能:

<button onclick="openNewWindow()">Open New Window</button>

<script>
function openNewWindow() {
    const newWindow = window.open('about:blank', '_blank'); // 打开新窗口
    newWindow.document.write('<p>This is a new window.</p><button onclick="window.close();">Close This Window</button>');
}
</script>

在这个例子中,新开的窗口可以用自己的脚本安全地调用 window.close()


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21011

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?