Firefox kullanıyorsanız , aşağıdaki cevap sizin için geçerli olduğu için şanslısınız. Chrome kullanıyorsanız, çok daha az şanslısınız, bu cevabın alt kısmına bakın.
Greasemonkey , DOM yüklendikten sonra kullanıcı komut dosyalarını tetikler , böylece bir "DOM hazır" dinleyicisini uygulamanıza gerek kalmaz.
Ayrıca Firefox üzerinde, bu yüzden bazı modern şeker kullanabilirsiniz: for...of, let.
İşte sonuç Greasemonkey betiği:
// ==UserScript==
// @name Remove Google redirects
// @namespace google
// @description Remove redirects from Google Search result links.
// @include https://www.google.*/*
// @version 1
// @grant none
// ==/UserScript==
for (let element of document.querySelectorAll('#res .r > a')) {
element.removeAttribute('onmousedown');
}
Sayesinde letbu nedenle bir in yukarıdaki kodu içine gerekmez, hiçbir yerel bildirimi olmadığı hayatım .
Talihsiz Chrome (Tampermonkey) kullanıcıları için:
Betiğin yürütüldüğü sırada bağlantılar bulunmaz, buna rağmen document.readyState === 'complete'… sonuç olarak zamanlayıcı ile bir döngü uygulamanız gerekir.
Bu nedenle, sonunda:
// ==UserScript==
// @name Remove Google redirects
// @namespace google
// @description Remove redirects from Google Search result links.
// @include https://www.google.*/*
// @version 1
// @grant none
// ==/UserScript==
(function removeGoogleRedirects() {
var links = document.querySelectorAll('#res .r > a');
if (links.length === 0) {
setTimeout(removeGoogleRedirects, 100);
return;
}
for (var link of links) {
link.removeAttribute('onmousedown');
}
})();
Ekim 2018 Güncellemesi:
Google sayfasındaki bir işaretleme değişikliği nedeniyle, h3.rdeğiştirilmesi gerekiyor div.r.
Ben öteye gitti ve yerine h3.r > abirlikte #res .r > a(sadece ".class" ile değiştirilir "tag.class" ve seçici çok genel olmaması böylece bir güvenlik olarak bir üst eklendi).