Mastodon ⇒ Kasgadon Fork

    @@ -6,31 +6,22 @@ * @javascript_url */ - { + ((d = document, b = d.body, r, x, i, n) => { - const replaceText = root => { + (r = t => { - const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { - acceptNode : node => NodeFilter.FILTER_ACCEPT - }, true); + // ぺけぱすが速いんだって + // http://javascripter.hatenablog.com/entry/20080722/1216745359 + x = d.evaluate('.//text()', t.target, null, 6, x); + for (i = 0; i < x.snapshotLength; i++) + (n = x.snapshotItem(i)).nodeValue = n.nodeValue + .replace(/(トゥート|トゥート)[!!]?/g, 'トゥース!'); - while (walker.nextNode()) { - walker.currentNode.nodeValue = walker.currentNode.nodeValue. - replace(/(トゥート|トゥート)[!!]?/g, 'トゥース!'); - } + })({ target: b }); - }; - - const observer = new MutationObserver(mutations => { - mutations.forEach(mutation => replaceText(mutation.target)); + new MutationObserver(s => s.forEach(r)).observe(b, { + childList: 1, + subtree: 1 }); - observer.observe(document.body, { + })();- childList: true, - // characterData: true, - subtree: true - }); - - replaceText(document.body); - - }
  • /*
     * @title Mastodon ⇒ Kasgadon
     * @description マストドンがカスガドンになります。
     * @include *
     * @license MIT License
     * @javascript_url
     */
    
    ((d = document, b = d.body, r, x, i, n) => {
    
    (r = t => {
    
    	// ぺけぱすが速いんだって
    	// http://javascripter.hatenablog.com/entry/20080722/1216745359
    	x = d.evaluate('.//text()', t.target, null, 6, x);
    	for (i = 0; i < x.snapshotLength; i++)
    	 (n = x.snapshotItem(i)).nodeValue = n.nodeValue
    	 .replace(/(トゥート|トゥート)[!!]?/g, 'トゥース!');
    
    })({ target: b });
    
    new MutationObserver(s => s.forEach(r)).observe(b, {
     childList: 1,
     subtree: 1
    });
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。