Googleの検索結果からリンクをコピーして貼り付けたら、めちゃくちゃ長いリダイレクト用のリンクになっていて「ふぁ??」となることがあります。
なので、それをなんとかしてくれる拡張機能を探したのですが、しっくり来るのがなかったので自作することに。。。
拡張機能のソース
// manifest.json { "name": "Disable google search tracking", "version": "0.1", "manifest_version": 2, "description": "Disable google search tracking", "permissions":[ "tabs", "http://www.google.co.jp/*", "https://www.google.co.jp/*" ], "content_scripts": [ { "matches": ["http://www.google.co.jp/*", "https://www.google.co.jp/*"], "js": ["content.js"], "run_at": "document_idle" } ] } // content.js (function(){ setTimeout(function(){ document.querySelectorAll("h3.r>a").forEach(function(link){ var a = document.createElement("a"); a.href = link.href; a.innerHTML = link.innerHTML; link.innerHTML = ""; link.appendChild(a); }); }, 100); })();
仕組み
リンクエレメントを直接どうこうしようとしても、Google側のjsで強引に書き換えられてしまうので、リンクエレメントの子に非Redirectなリンクを挿し込む方法を取りました。
こうすれば、リンクのクリックイベントは最深の子のみで発火するので、親リンクのRedirectとトラッキング用のイベントハンドラは無効化されます。
これで純粋なリンクのみがリストアップされたクリーンな検索結果になりました。