我试图理解以下行为。
我创建了一个简单的 anchor 标记:
<a href="/example/link" target="_blank">
<img src="/images/layout_open.png">
<span class="open-new-tab">Open in new tab</span>
</a>
更新:这些<a>
标签是异步创建的。 AJAX 请求后,JS 创建 <a>
标签。
问题是 Google Chrome 会阻止打开的选项卡,就好像它是一个干扰性的弹出窗口一样。
如何避免这种行为?
我读过其他 StackOverflow 问题,我可以添加 <a>
标记一个数据属性并通过 jQuery 将事件绑定(bind)到它,然后使用 JS 我可以打开一个新窗口。
我无法理解的是为什么在我的示例中它不起作用,而在其他站点中它没有被阻止。它链接到相同的域和主机。
我的结论是,这可能是因为当我按下span或img时,该事件将在冒泡阶段被触发,那么,它不是一个直接 Action ,而是一个间接 Action 。
造成这种情况的原因是什么?如何避免?
谢谢
更新:
我想我已经找到了解决方案。问题是图像附加了一个我之前没有附加的 onclick 事件。就像这样:
<a href="/example/link" target="_blank">
<img src="/images/layout_open.png" onclick="showFullImage()">
<span class="open-new-tab">Open in new tab</span>
</a>
我还没有尝试过这个,但正如 @Siderite 所建议的,阻止不是常规的浏览器行为。因此我认为 Google Chrome 会将其标记为间接操作。
我明天会尝试并在更新编号中通知您。 2
谢谢大家
最佳答案
这不是浏览器的正常行为,而更可能是试图积极阻止弹出窗口的扩展。
转至 chrome://extensions/网址检查您的 Chrome 扩展程序。
关于javascript - anchor 目标_blank被浏览器阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36103113/