indexOf在IE8抛出错误,但在所有其他浏览器工作

indexOf in IE8 throwing error but works in all other browsers

本文关键字:其他 浏览器 工作 IE8 出错 错误 indexOf      更新时间:2023-09-26

大家好,我有以下js代码:

for(var i = choicesOrder.indexOf(cat)+1; i<choicesOrder.length; i++)

并抛出错误:SCRIPT438:对象不支持属性或方法'indexOf'

我怎么能去修复,因为它在所有其他浏览器中工作?

您可以在这里找到可以实现的原型版本:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

你可以像这样扩展功能来修复IE8及以下版本的。indexof

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    var len = this.length >>> 0,
        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;
  };
} 
相关文章: