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/18 04:50:35 - 2014-11-18
  2. 2014/11/15 05:49:30 - 2014-11-15
  3. 2014/11/15 05:16:58 - 2014-11-15
  4. 2014/11/15 04:18:02 - 2014-11-15
  5. 2014/11/15 02:45:48 - 2014-11-15
  6. 2014/11/14 03:47:59 - 2014-11-14
  7. 2014/11/14 03:42:55 - 2014-11-14