IE8不支持数组的indexOf方法 如何解决

技术文章 2015年11月26日 3.31K

一个js bug, 在IE8下有个js错误,在其它浏览器下(Firefox, Chrome, IE9)都是正常的。

原因分析:
在IE8下, js数组没有indexOf方法,我了个去哦。

我的解决方法:
在使用indexOf方法前,执行一下下面这个js。
原理:发现数组没有indexOf方法,会添加上此方法

if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;

var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;

for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}

 

文章评论

您需要之后才可以评论
0点赞 0评论 收藏 QQ分享 微博分享