MacIE5でArray.pushを実装
スポンサードリンク
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; } }
使うときは普通に
var x = ['hoge', 'fuga']; x.push('hage'); alert(x.length); // 3 var s = ''; for (var i = 0; i < x.length; i++ ) { s += i + ':' + x[i] + ','; } alert(s); // 0:hoge,1:fuga,2:hage,
となります。
作ってから検索してみたら、先人が同じコードを作ってた。よくあることだねー
IE5.5以前ではArray.push()が使えないらしいので - へぼいいいわけ [d.hatena.ne.jp]
あと、同様に昔作ったMacIE5でdecodeURIを実装もご覧ください。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2584
Array.prototype.push = function(){
for(var i=0; i
Array.prototype.push = function(){
for(var i=0; i < arguments.length; i++){
this[this.length]=arguments[i]
}
return this.length;
}
とかじゃないとpushの仕様を満たさないかも?