Javascript window.open 在 Chrome 控制台中工作,但不是一个片段

标签 javascript google-chrome-devtools

我是 Javascript 的新手,我正在编写一些小脚本来修改我经常使用的网页。我正在自动化的事情之一是在选项卡中打开某些链接,因此我不必手动操作。

如果我将这一行放入我的代码片段并运行它,什么也不会发生:

window.open("http://www.google.com");

但是,如果我将它输入控制台并按回车键,它会打开一个带有 url 的新选项卡。所有这一切都发生在 Inspector 中。为什么它在一个地方起作用而在另一个地方不起作用?有解决方法吗?

最佳答案

当 Chrome 检测到并非源自用户手势的 window.open() 调用时,它会将其作为弹出窗口进行阻止。

您可以通过显示在 URL 栏右边缘的小弹出窗口手动覆盖它:

pop-up modal

您提出的有趣的事情是:为什么它在控制台中起作用,而不是在代码段中起作用?我询问了 DevTools 团队,其中一位非正式地认为 DevTools 将控制台执行视为用户手势,以避免此类安全检查。

可能适合您的一种解决方法是从新的 Chrome 标签页 (chrome://newtab) 运行您的代码段。当我从该页面运行代码段时,我可以打开新窗口而不会触发“弹出窗口被阻止”模式。

感谢您试验它如何与控制台和代码段一起工作。结果证明这很有趣。

关于Javascript window.open 在 Chrome 控制台中工作,但不是一个片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331065/

相关文章:

google-chrome - 在 Chrome DevTools 中搜索 HTML 元素

javascript - Chrome 开发工具无法展开 Iframe 内容

google-chrome - 运行 storage.set 时未检查runtime.lastError : QUOTA_BYTES_PER_ITEM quota exceeded

javascript - 根据其他属性查询多维数组属性

javascript - 通过 javascript 设置时单选按钮 onchange 不会触发

javascript - 如何使一个简单的 jQuery 过滤器列表只接受整个单词,所以它不匹配部分单词,只匹配整个单词

google-chrome-devtools - Chrome Devtools 作为搜索打开而不是开发工具本身

javascript - 点击切换 Google 组织结构图可视化?

javascript - 分割 youtube 视频 url

html - Google Chrome 中页脚 <div> 后的空白