avoid forwarding to id page @ Haiku Fork

  • /*
     * @title avoid forwarding to id page @ Haiku
     * @description はてなハイクで 2017-5-9 くらいから 不意に IDページに飛ばされちゃう件のやっつけ対応(投稿内容の一部を数値参照に置き換える)
     * @include http://h.hatena.ne.jp/*
     * @license MIT http://opensource.org/licenses/MIT
     * @javascript_url
     */
    /*
        see http://h.hatena.ne.jp/target?word=%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%8F%E3%82%A4%E3%82%AF&date=2017-05-19
    */
    (function() {
        const d_ = document;
        if (d_.location.href.indexOf("http://h.hatena.ne.jp/") == 0) {
            let ta = d_.querySelector(".entry-form textarea.entry-body");
            if (ta) {
                let txt = ta.value;
                /* IDページに飛ばされる地雷 */
                [
                    "ミ",
                    "о",
                    "卍",
                ].forEach(function(mine) {
                    let re = new RegExp(mine, "g");
                    let entity = Array.prototype.reduce.call(mine, function(prev, v) {
                        return prev + "&#" + v.codePointAt(0) + ";";
                    }, "");
                    txt = txt.replace(re, entity);
                });
                ta.value = txt;
            }
        }
        // ほんとは entry.body の POST を横取りしたかったんだけど (´・ω・`)
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。