JAMADAM.COM

RSS Subscribe to my RSS feed

Stripe Calendar

Sep, 2010
Aug 1516171819202122232425262728293031 Sep 123456789

Entry: twilogで日本語ドメイン名にリンクを張るGreasemonkeyスクリプトを作った

twilogで日本語ドメイン名にリンクを張るGreasemonkeyスクリプトを作った

Initial post: 2009.10.19 | Last modified: 2009.10.19

開発ネタがぜんぜん思いつかないのでGreasemonkeyスクリプトをもうひとつ作った。

twilogというサービスで、つぶやきの文中の日本語ドメインURLにリンクが張られていないようなので、勝手に張ってくれるGreasemonkeyスクリプトです。

accessible_idnをインストール

// ==UserScript==
// @name           accessible_idn
// @namespace      http://jamadam.com/blog/
// @description    This makes IDN URLs accessible.
// @include        http://twilog.org/*
// ==/UserScript==

(function() {
var tltexts = document.getElementsByClassName('tl-text');
for (var i = 0; i < tltexts.length; i++) {
    var tmp = tltexts[i].innerHTML;
    for (var j = 0; j < tmp.length;) {
        if (tmp.substr(j, 3) == '<a ') {
            var closepos = tmp.indexOf('</a>', j);
            if (closepos == -1) {
                break;
            } else {
                j =  closepos + 4 + 1;
                continue;
            }
        }
        if (tmp.substr(j, 2) == 'ht' && 
            tmp.substr(j, 8).match(/^https?:¥/¥//)) {
            var end = tmp.substr(j).search(/¥s| |$/);
            var url = tmp.substr(j, end);
            var gen = '<a href="%1">%2</a>'.replace('%1', url)
                                           .replace('%2', url);
            tmp = tmp.substr(0, j) + gen + tmp.substr(j + end);
            continue;
        }
        
        j++;
    }
    
    tltexts[i].innerHTML = tmp;
}
})();

 前回のネタよりちょっと難しかった。既設リンクをスルーする仕組みが多少いい加減。