0
使用Greasemonkey或Tampermonkey,我怎麼能在thesaurus.com列出的同義詞(這是鏈接)在新標籤打開時Ctrl +點擊,或者當新窗口Shift + clicked?目前,它打開Ctrl +點擊並且Strl +點擊同一個標籤中的鏈接。Userscript恢復正常的鏈接點擊行爲打開新標籤時按Ctrl +點擊
使用Greasemonkey或Tampermonkey,我怎麼能在thesaurus.com列出的同義詞(這是鏈接)在新標籤打開時Ctrl +點擊,或者當新窗口Shift + clicked?目前,它打開Ctrl +點擊並且Strl +點擊同一個標籤中的鏈接。Userscript恢復正常的鏈接點擊行爲打開新標籤時按Ctrl +點擊
該網站打破了標準鏈接的行爲,這是一個非常糟糕的事情,通過將自己的原始click
處理程序不支持組合鍵。
有時你可以使用jQuery('a').off('click')
但一個普遍的做法是:
window
,最上面的DOM對象點擊監聽,現場重視自己的聽衆面前:使用@run-at document-start
元數據的關鍵。true
爲的addEventListener的將useCapture參數在捕捉階段的一開始從window
到點擊目標截獲該事件。因此,我們還增加攔截的機率就氣泡到該網站click事件與標準的非捕獲聽衆收聽(可以是任何東西,從裏面的東西a
到window
)元素之前。event.stopPropagation()
可防止隨後連接的站點偵聽器看到單擊事件。href
和/或通過點擊目標的CSS選擇限制內容區域保護經由#
在目標鏈接跳過與自重定向虛擬鏈接合法的基於鏈接的網站的功能。// ==UserScript==
// @name Restore links behavior
// @match *://www.thesaurus.com/*
// @run-at document-start
// ==/UserScript==
window.addEventListener('click', function(e) {
var link = e.target.closest('a');
//var link = e.target.closest('#content a'); // limit to the #content area
if (link && link.getAttribute('href') != '#') {
e.stopPropagation();
}
}, true);
好,但是這也將打破所需的菜單和按鈕。您應該確定鏈接的範圍以減少副作用。例如,像'if(e.target.closest('。synonyms同義詞''))'。 (具體到那個網站) –
確實。在這種情況下,即使'#content a'可以工作,但是使用'#' - 檢查它顯然是不需要的。 – wOxxOm
@ wOxxOm,太棒了,謝謝。我可以從中得到任何副作用嗎? –