Javascript无法在IE上编译,但可以在Chrome上运行

时间:2012-09-05 00:07:28

标签: javascript cross-browser

我正在使用Javascript编写搜索功能,这几乎已经完成并且在Chrome上工作正常,但在资源管理器中却没有。我使用了explorer开发人员工具,它告诉我这是它无法处理的行:

if (compareElement.indexOf(compareString)!== -1 &&
    processFindings.indexOf(processes[i]) === -1)

错误是Object不支持此属性或方法。

用于阅读的行:

if(compareElement.indexOf(compareString)!== -1)

它工作正常,只有当我添加了探险家无法处理它的额外条件时。

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:2)

并非所有版本的IE都有。indexOf()数组方法。虽然它有一个填充剂,但效果很好。

见这里: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

这可能会导致代码无法正确迭代数组的问题。

答案 1 :(得分:0)

您可以复制该方法(如果它不存在),但使用原型将要求它在任何调用之前存在。一个例子:

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(searchElement,fromIndex) {
        fromIndex = parseInt(fromIndex || 0);
        for (var i = 0; i < this.length; i++) {
            if (this[i] == searchElement) return i;
        }
        return -1;
    }
}
相关问题