0
我只是想阻止打開時點擊一個鏈接一個新的頁面(也可能是IMG或按鈕)。這裏是我的「內容scripts.js中」代碼:鉻分機/ JavaScript的如何讓網頁上的所有鏈接都沒有效果?
document.onclick = function() {
return false;
}
它可以工作,但有時不工作,我不知道爲什麼。當我點擊網頁上的一些元素時,它仍然會打開另一個網址。
我只是想阻止打開時點擊一個鏈接一個新的頁面(也可能是IMG或按鈕)。這裏是我的「內容scripts.js中」代碼:鉻分機/ JavaScript的如何讓網頁上的所有鏈接都沒有效果?
document.onclick = function() {
return false;
}
它可以工作,但有時不工作,我不知道爲什麼。當我點擊網頁上的一些元素時,它仍然會打開另一個網址。
它並不總是工作,因爲點擊可不能讓它一路document
,它就會有前冒泡可能會被取消。
做你做什麼,你必須對掛鉤click
爲DOM修改頁面的每一個元素,列表,以便您可以勾上新的元素click
如果他們添加到頁面。
來處理所有的元素,你可以走遞歸DOM樹或通過document.querySelectorAll("*")
得到一個潛在的,巨大的列表。
要監聽的DOM修改,這樣你就可以吸引新的元素,因爲它們可以增加,你會想要一個mutation observer。
因爲其他JavaScript代碼可能會覆蓋你的onclick
,我會使用addEventListener
代替,都停止傳播,並立即停止傳播:
function stopEvent(e) {
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
}
someElement.addEventListener("click", stopEvent);
因此,舉例來說,大致有:
function stopEvent(e) {
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
}
document.querySelectorAll("*").forEach(function(element) {
element.addEventListener("click", stopEvent);
});
。然後使用突變觀察者來處理新添加的元素。
想要防止**點擊頁面上的所有**動作,或只點擊鏈接上的鏈接(''元素),這將導致*正常頁面導航*(即''有一個'href')。你想阻止Javascript導航頁面(即不只是導航引起的''元素的默認動作)? – Makyen
如果下面的答案*回答了您的問題,Stack Overflow的工作方式,您可以通過單擊旁邊的複選標記來「接受」答案,該答案會將其從未答覆的問題列表中刪除; [詳細信息](/ help/someone-answers)。但是,只有當你的問題得到真正的答覆。 –
我對JavaScript沒有太多瞭解。其實我只是想阻止打開由點擊發起的新網頁(無論是觸發或腳本),我不在乎這個頁面會發生什麼。你可以幫我嗎? – pang