3

したがって、私のjavascriptには次のコードがあります。

    var wholeHash = window.location.hash.substring(1);
    var data = new Object();

    // Remove the bang or slash if one appears at the beginning
    if (wholeHash[0] == '!') { wholeHash = wholeHash.substring(1); }
    if (wholeHash[0] == '/') { wholeHash = wholeHash.substring(1); }

これが実行されようとしているときwholeHash、値は"/search/&&stype=quick"です。ただし、wholeHash[0]何も返さないため、wholeHash[0] == '!'false になります。これは IE の場合のみです。

どうしてこれなの?代わりに使用できることは承知していますstartswithが、一般的に、IE が文字列の個々の文字を取得できないのに、他のブラウザーでは取得できない理由に興味があります。

4

3 に答える 3

6

配列スタイルのインデックスを使用した文字列へのインデックスは新しく、古いバージョンの IE にはこれがありません。mystring.charAt(0)8 より前の IE をサポートする必要がある場合は、代わりに使用する必要があります。

于 2012-04-19T19:48:55.913 に答える
2

少し前に同様の問題がありました。私の場合、イントラネット ページで互換表示が自動的に有効になっていることが原因でした。この質問を確認してください。

于 2012-04-19T19:50:42.520 に答える
1

文字列から文字を取得する「適切な」方法は、mystring.charAt(x).

ただし、 を使用して文字列を配列に分割できますmystring.split("")

どちらがお好みかはあなた次第。

于 2012-04-19T19:50:38.523 に答える