我只是想製作一個快速的用戶腳本來防止網站在新標籤中打開鏈接,所以我可以選擇何時這樣做。好傢伙。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
這很可能,爲什麼? –