H::K on anond

  • /*
     * @title H::K on anond
     * @description replace keyword-link to Hatena Keyword on AnonymousDiary w/ Pager Extentions
     * @include http://anond.hatelabo.jp/*
     * @contributor azyobuzin   http://let.hatelabo.jp/azyobuzin/let/hLHWqbmliOYD (Fork of)
     * @license MIT License
     * @javascript_url
     */
    
    (function() {
        var forEach = Array.prototype.forEach;
    
        var replaceKeywords = function(context) {
            forEach.call(context.querySelectorAll("a.keyword"), function(value) {
                value.host = "d.hatena.ne.jp";
            });
        };
        replaceKeywords(document.body);
    
        // c.f.
        // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
        // http://blog.gutyan.jp/entry/2014/09/06/MutationObserver
        var MutationObserver = window.MutationObserver ||
            window.WebkitMutationObserver; // webkit-* e.g. Safari 6
        var observer = new MutationObserver(function callbackhell(mutations) {
            mutations.forEach(function(mutation) {
                forEach.call(mutation.addedNodes, function(node) {
                    replaceKeywords(node);
                });
            });
        });
        // IDKWTD filter by selector(not attributeFilter) e.g. "a.keyword"
        observer.observe(document.body, { childList: true, subtree: true });
    }());
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/10/27 02:30:54 - 2014-10-27
  2. 2014/10/27 02:21:38 - 2014-10-27
  3. 2014/10/27 02:08:45 - 2014-10-27