0

Javascript を使用して検索機能を作成しています。これはほぼ完成しており、Chrome では正常に動作しますが、エクスプローラーでは動作しません。Explorer 開発者ツールを使用しましたが、これは処理できない行であることがわかります。

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

エラーは、オブジェクトはこのプロパティまたはメソッドをサポートしていません。

読むために使用される行:

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

エクスプローラーが処理できなかったのは、余分な条件を追加したときだけでした。

誰でもこれで私を助けることができますか?

4

2 に答える 2

2

IEのすべてのバージョンに。があるわけではありません。indexOf()配列のメソッド。ただし、うまく機能するポリフィルがあります。

ここを参照してください: https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

ただし、これにより、配列を適切に反復しないコードで問題が発生する可能性があります。

于 2012-09-05T00:16:16.507 に答える
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;
    }
}
于 2012-09-05T00:27:58.200 に答える