素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Google検索結果の緑のURLをリンクにするGreasemonkeyスクリプトのパクリ

Linkify Google Search Results for Greasemonkeyが便利。
だけど、

  1. 検索ワードの強調表示(bタグ)がなくなってしまう。
  2. AutoPagerizeに対応してない。
  3. アニメーションは必要ない。

というのが気になったので、自分用に作った。
ソースを見てもやっていることがよく分からなかったので、一から書いた。

// ==UserScript==
// @name           Linkify Google Search Results modoki
// @namespace      http://d.hatena.ne.jp/javascripter/
// @include        http://www.google.co.jp/search?q=*
// ==/UserScript==
GM_addStyle(<><![CDATA[
  .a a {
    color: #008000 ! important;
    text-decoration: none;
  }
  .a a:hover {
    color: #0000CC ! important;
    text-decoration:underline;
  }
]]></>);

function linkify(doc) {
  Array.forEach(doc.getElementsByClassName('a'),
  function(elem) {
    var array = elem.innerHTML.split(/(?=\/[^b]| - \d+k - )/);
    var size = array.pop();
    var result = '';
    array.reduce(function(a, b)(result += '<a href="' + (a += b.replace(/<\/?b>/g, '')) + '">' + b + '</a>', a), 'http://');
    elem.innerHTML = result + size;
  });
}

linkify(document.body);

window.AutoPagerize && window.AutoPagerize.addFilter(function(docs) {
  docs.forEach(linkify);
});