javascript - anchor 目标_blank被浏览器阻止

标签 javascript jquery html css

我试图理解以下行为。

我创建了一个简单的 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/

相关文章:

Javascript 编译器行为 - 空数组和零数组的双加号是.. ONE

jquery - 相对 div 根据内容调整到绝对定位的 div 高度

jquery - 我应该将 YUI 的网格与 Boilerplate HTML5 结合起来吗?

javascript - 如何使用 JavaScript 以动画方式绘制跟随移动元素的线条

javascript - 如何通过 Javascript 使用鼠标事件在 Canvas 上绘图

javascript - node.js : socket. 中的 socket.io 发出在 socket.disconnect 之前未完成

javascript - jQuery,菜单导航栏中的事件菜单项

javascript - 我如何在 NodeJS 中正确地要求文件?

javascript - 选中元素上的单选按钮更改事件

html - 附加 DIV 是垂直的