Entry: 誤ってエンコードされたIDNを直すGreasemonkeyスクリプトを作った
誤ってエンコードされたIDNを直すGreasemonkeyスクリプトを作った
Initial post:
2009.10.18
|
Last modified:
2009.10.18
開発ネタがぜんぜん思いつかないのでGreasemonkeyスクリプトでもやってみようと思った。
世の中のWEBシステムの多くは国際化ドメイン名(IDN)に対応していないと最近気づいた。例えばTwitter検索の結果とかにhttp://日本語.jp/とあっても飛び先がエラーになるのはサーバープログラムが「日本語」を誤ってパーセントエンコードしているため。このリンクを正しく動作させるためにドメイン名をデコードするGreasemonkeyスクリプトを作りました。
// ==UserScript== // @name idn_fixer // @namespace http://jamadam.com/blog/ // @description This fixes wrongly percent encoded domains in hrefs. // @include * // ==/UserScript== (function() { var links = document.getElementsByTagName('a'); for (var i = 0; i < links.length; i++) { var pos1 = links[i].href.indexOf('//', 0) + 2; var pos2 = links[i].href.indexOf('/', pos1); var domain = links[i].href.substr(pos1, pos2 - pos1); if (domain.indexOf('%') != -1) { links[i].href = decodeURI(links[i].href); } } })();
初めてのGreasemonkeyスクリプトなので作法とか間違ってるかも知れません。
Subscribe to my RSS feed