Anyone can be a B!KUMA Girl

  • /*
     * @title Anyone can be a B!KUMA Girl
     * @description B!KUMAize everyone's icon
     * @include http://b.hatena.ne.jp/*
     * @license MIT License
     */
    
    (function() {
      var BKUMA = 'http://f.st-hatena.com/images/fotolife/h/hatenapr/20111228/20111228162520.png';
      var bkumaize = function(node) {
        function changeIcon(img) {
          if (img.src.match(/^http:\/\/cdn1\.www\.st\-hatena\.com\/users\/.*\.gif$/)) {
            img.src = BKUMA;
          }
        }
        node = node || document;
        if (typeof (node.querySelectorAll) !== "undefined") {
          if (node.nodeName === "IMG") {
            changeIcon(node);
          } else {
            Array.prototype.forEach.call(node.querySelectorAll('img'), function(img) {
              changeIcon(img);
            });
          }
        }
      };
      bkumaize();
      // c.f. MutationObserver
      // https://developer.mozilla.org/en/docs/Web/API/MutationObserver
      var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
          for (var i = 0; i < mutation.addedNodes.length; i++) {
            bkumaize(mutation.addedNodes[i]);
          }
        });
      });
      observer.observe(document, {childList: true, subtree: true});
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/11/13 17:38:54 - 2014-11-13
  2. 2014/11/13 14:00:37 - 2014-11-13
  3. 2014/11/13 14:00:20 - 2014-11-13
  4. 2014/11/13 13:48:22 - 2014-11-13
  5. 2014/11/13 13:41:16 - 2014-11-13