opera:hige このページをアンテナに追加

 | 

2007-11-18

[] 顔文字を画像に置換する UserJavaScript 11:05  顔文字を画像に置換する UserJavaScript - opera:hige を含むブックマーク はてなブックマーク -  顔文字を画像に置換する UserJavaScript - opera:hige

":)", ":(" などの顔文字をスキンのスマイリーに変換する UserJS

// ==UserScript==
// @name      Replace Smiley
// @namespace http://opera.higeorange.com/
// @inlcude   *
// ==/UserScript==

(function() {
    var smiley = {
        ":)": "Smiley Happy",
        ":-)": "Smiley Happy",
        "=)": "Smiley Happy",
        ":(": "Smiley Unhappy",
        ":-(": "Smiley Unhappy",
        ";)" : "Smiley Wink",
        ";-)": "Smiley Wink",
        ":o": "Smiley Surprised",
        ":-O": "Smiley Surprised",
        ":D": "Smiley Grin",
        ":-D": "Smiley Grin",
        "8-)": "Smiley Cool",
        "8-D": "Smiley Cool",
        ":|": "Smiley Indifferent",
        ":-|": "Smiley Indifferent",
        ":'|": "Smiley Cry",
        ":@": "Smiley Angry",
        ":-@": "Smiley Angry",
        ":p": "Smiley Tongue",
        ":-P": "Smiley Tongue",
        "'<": "Smiley Pacman"
    };
    var r = /([:;8\'=][-']?[\)\(oODpP\|@])|'</g;
    var f = '<span style=\"background-image: -o-skin(\'';
    var a = '\');width:-o-skin;height:-o-skin;display:inline-block"></span>'
    document.body.normalize();
    (function search_smiley(n) {
        if(n.nodeType == 3) {
            n.parentNode.innerHTML = n.parentNode.innerHTML.replace(r, function($0) {
                if(smiley[$0]) {
                    return f + smiley[$0] + a;
                } else {
                    return $0;
                }
            });
        } else if(n.tagName != "STYLE" && n.tagName != "SCRIPT" && n.nodeType == 1) {
            for(var m = n.firstChild; m != null; m = m.nextSibling) {
                arguments.callee(m);
            }
        }
    })(document.body);
})();

誤爆します。とくにパックマンが危険。

この UserJS を適用したままこのページを編集しようとしたら大変なことになるな。

うは, livedor reader 表示されない…。


もっとピンポイントで適用させる方がいいなぁ。 Twitter のメッセージにとか。

トラックバック - http://orera.g.hatena.ne.jp/higeorange/20071118
 |