基本上,當我在做的Yandex a search,我得到的是這樣的:變化`href`s通過`onmousedown`,`click`事件鏈接
。
但是,當我右鍵單擊並複製鏈接時,我沒有得到真正的鏈接,但是垃圾郵件(在重定向到我想要的鏈接前跟蹤我的點擊功能的中間件) 。
我試圖編寫一個腳本,刪除這些垃圾鏈接。這是我已經試過:
function decodeURL(str) {
return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}
function getRealLinks() {
var classes = document.getElementsByClassName('organic typo typo_text_m typo_line_s'); // gets any search result
var cleanLinks = new Array(); // we'll store any clean link to this array
for (i = 0; i < classes.length; i++) {
var html = classes[i].innerHTML; // we get part of the inner html of the selected search result
var pattern = /(url=(.*?))(?=&\w+=)/; // with this regex we'll match the url
var match = pattern.exec(html); // attempt matching pattern
cleanLinks.push(decodeURL(match[2])); // decode the url, then push the match to the array
}
console.log(cleanLinks);
}
function bindEventListeners() {
var lis = document.getElementsByTagName('li'); // search results have `li` selector
for (var i = 0; i < lis.length; i++) { // iterate every element
(function(i) {
lis[i].addEventListener('click', function() { // add a listener to the current element
alert(this.dataset.cid); // each result has an id (by default between 0-9)
}, false);
})(i);
}
}
bindEventListeners();
getRealLinks()
給了我正確的鏈接,但我不知道現在如何「進步」與乾淨的鏈路替代href
S上的搜索結果。
bindEventListeners()
當它被調用時,綁定在搜索結果正文部分實現點擊時將觸發的偵聽器。點擊搜索結果的id
對我有用,只是讓鏈接偏離我需要的鏈接。例如,用戶點擊搜索結果索引3
,我會做var search_3 = getRealLinks()[3]
。
我該如何替換那些可以在JavaScript中看到的乾淨鏈接?
我試過份的[驗證碼](https://github.com/Rob--W/dont-track-me-google/blob/master/contentscript.js)也一樣,但它甚至不工作。 – WayneXMayersX
僅供參考:[Google搜索鏈接修復](https://chrome.google.com/webstore/detail/google-search-link-fix/cekfddagaicikmgoheekchngpadahmlf):適用於Google和Yandex。適用於Chrome和Firefox。 – Makyen