我只是想制作一个快速的用户脚本来防止网站在新标签中打开链接,所以我可以选择何时这样做。好家伙。Event.PreventDefault()并不总是起作用
我想用普通的javascript;我认为完成这么简单的任务已经足够了。我在Quora做了所有的测试,因为那是我决定编写这个小片段的地方。
嗯,没有任何工作。我开始简单,并因为失败而增加了我的代码的疯狂性:无论有多少个preventDefault(),返回false,阻止[*] Propagation(),eventListeners,甚至修改链接,都会打开 dom从目标中剥离a
元素=“_ blank”。
最终,我咬我的舌头,并试图用jQuery的这个小片段:
$("a").click(function(event){
event.preventDefault();
alert("Was preventDefault() called: " + event.isDefaultPrevented());
});
但是,这并没有什么好处无论是。所以我放弃了。然后我意识到代码似乎在其他网站上工作。除了在Quora.com上。定期Quora的链接看起来是这样的:
<a href="http://thewebsite.to/go"
rel="noopener nofollow"
target="_blank"
onclick="return Q.openUrl(this);"
class="external_link"
data-qt-tooltip="thewebsite.to"
data-tooltip="attached">
Link text
</a>
有大量垃圾的出现,肯定的,但我一直在剥离下来的属性逐一直到梗概:<a href="http://thewebsite.to/go"></a>
,仍然不起作用。最重要的是,即使链接打开,event.isDefaultPrevented()
返回true!
为什么会发生这种情况,我该如何解决?
这有一个内嵌的事件处理程序。那是动态创建的吗? – Jai
这很可能,为什么? –