IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

デフォルトのはてなスター強制置換えグリモンを書きました。

トラックバックに気が付いた!

ということで、 id:amachang さんあたりがグリモンを作ってくれるハズ。他力本願でごめんなさい!

色覚異常によるカラースターの色の見え方 - no.10

という訳で書いてみた
こんなのが

こんな感じになります

ソースコード

// ==UserScript==
// @name           Replace star
// @namespace      http://d.hatena.ne.jp/amachang/
// @include        http://*
// ==/UserScript==
(function() {
    translate(document.body);
    document.addEventListener('DOMNodeInserted', function(e) { translate(e.target); }, false); 
    document.addEventListener('DOMAttrModified', function(e) { translate(e.target); }, false); 

    function translate(context) {
        var r = document.evaluate('descendant-or-self::img[' +
                 '@src = "http://s.hatena.ne.jp/images/star.gif" or ' +
                 '@src = "http://s.hatena.ne.jp/images/star-green.gif" or ' +
                 '@src = "http://s.hatena.ne.jp/images/star-red.gif" or ' +
                 '@src = "http://s.hatena.ne.jp/images/star-blue.gif"' +
                 ']', context, null, 7, null)

        for (var i = 0; i < r.snapshotLength; i ++) {
            var node = r.snapshotItem(i);

            // ここを書き換えると自分で画像を指定できます。
            switch (node.src) {
                case "http://s.hatena.ne.jp/images/star.gif":
                    node.src = "http://www.hatena.ne.jp/users/na/naoya/profile_s.gif";      // ここに黄スターの代替画像の URL
                    break;
                case "http://s.hatena.ne.jp/images/star-green.gif":
                    node.src = "http://www.hatena.ne.jp/users/se/secondlife/profile_s.gif"; // ここに緑スターの代替画像の URL
                    break;
                case "http://s.hatena.ne.jp/images/star-red.gif":
                    node.src = "http://www.hatena.ne.jp/users/da/dankogai/profile_s.gif";   // ここに赤スターの代替画像の URL
                    break;
                case "http://s.hatena.ne.jp/images/star-blue.gif":
                    node.src = "http://www.hatena.ne.jp/users/jk/jkondo/profile_s.gif";     // ここに青スターの代替画像の URL
                    break;
            }
        }
    }
})();

完成!
ちゃんと追加されたスターも置換します。

こんなのが


こんな感じになります!