MacIE5でdecodeURIを実装
スポンサードリンク
MacIE5でdecodeURI()が必要になったんで、作ったけど、これでいいのかな。
if (typeof decodeURI != 'function') { decodeURI = function (s) { // via http://homepage3.nifty.com/aokura/jscript/utf8.html var _from_utf8 = function(s) { var c, d = "", flag = 0, tmp; for (var i = 0; i < s.length; i++) { c = s.charCodeAt(i); if (flag == 0) { if ((c & 0xe0) == 0xe0) { flag = 2; tmp = (c & 0x0f) << 12; } else if ((c & 0xc0) == 0xc0) { flag = 1; tmp = (c & 0x1f) << 6; } else if ((c & 0x80) == 0) { d += s.charAt(i); } else { flag = 0; } } else if (flag == 1) { flag = 0; d += String.fromCharCode(tmp | (c & 0x3f)); } else if (flag == 2) { flag = 3; tmp |= (c & 0x3f) << 6; } else if (flag == 3) { flag = 0; d += String.fromCharCode(tmp | (c & 0x3f)); } else { flag = 0; } } return d; } return _from_utf8(unescape(s)); } decodeURIComponent = decodeURI; }
使うときは普通に
alert(decodeURI('%E3%81%BF%E3%82%93%E3%81%AA%E3%82%A8%E3%83%AD%E3%82%A4%E3%81%AD') );
でつかえますー
TransURI (UTF-8) [nurucom-archives.hp.infoseek.co.jp] ていうのもあるけれども、正規表現の中に無名関数を住まわせるタイプの置換はMacIE5のJavaScriptじゃあサポートされていなく悲しい結果になるので、Unicode ⇔ UTF-8 - by AOK [homepage3.nifty.com] を使いまして、ブラウザにビルトインで用意されている場合は上書きしないようにしてみた。
JavaScriptはよくわかんないなー
スポンサードリンク
トラックバック(1)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2288
MacIE5でArray.pushが必要になったんで、作りました。以下のコードをJavaScriptのコードに入れておくと、Arrayオブジェクトにpushメソッドが追加されます。pushメソッドが既にある場合は、上書きしません。 // Array.pushをMacIE5に実装 if (typeof Array.prototype.push != 'function') { Array.prototype.push = function (f){ this[this.length] = f; } }... 続きを読む
コメントする