我试图理解以下行为。
我创建了一个简单的锚标记:
<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将事件绑定到它并使用JS我可以打开一个新窗口。
我无法理解的是,为什么在我的示例中它不起作用,而在其他网站中它没有被阻止。它链接到同一个域和主机。
我得出结论可能是因为当我按下span或img时,事件将在冒泡阶段被触发,然后,它不是直接动作,而是间接动作。
造成这种情况的原因是什么?如何避免?
由于
更新
我想我已经找到了解决方案。问题是图像附加了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
谢谢大家
答案 0 :(得分:2)
这不是浏览器的正常行为,但更可能是尝试积极阻止弹出窗口的扩展程序。
转到chrome:// extensions / url。
,检查您的Chrome扩展程序