我只是想制作一个快速的用户脚本,以防止网站在新标签页中打开链接,因此我可以选择何时进行操作。好家伙。
我想使用普通的javascript;我认为完成如此简单的任务就足够了。我在Quora中进行了所有测试,因为那是我决定要编写该小片段的地方。
好吧,什么都没有。我从简单开始,并根据失败而增加了代码的疯狂度:无论有多少preventDefault(),返回false,prevent [*] Propagation(),eventListeners,该链接始终打开,甚至修改了dom从其target =“ _ blank”中剥离a
元素。
最后,我咬住了舌头,尝试了这个小片段来尝试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!为什么会发生这种情况,我该如何解决?
最佳答案
您确定链接被选中了吗?
也许这样的帮助:
$(document).on('click', 'a', function(e) {
e.preventDefault();
});
关于javascript - Event.PreventDefault()并不总是有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42504458/