0

こんにちは私は次のJSコードを持っています(このコードは私自身のものではありません)

 function somename(f) 
    var procName = "";
    var procParams = new Array();
    var parseEl = "";
    var parseEls = new Array();
    var parseInd = 0;
    var procParamsInd = 0;
    var IsValRead = false;
    for (i = 0; i < f.length; i++) {
        if (f[i] == "(")
            break;
        else
            procName = procName + f[i];
    }

}

「(」の前のデータを見つけるためのより良い方法にやり直しますが、すべてのブラウザーでprocName変数がIE9で常に未定義である理由がわかりません。

4

2 に答える 2

1

前に部分文字列を取得するためのより良い方法(これです:

var f = "name(2,4,5)",
    procName = f.slice(0, f.indexOf('(')); //slice from start until before "("

console.log(procName)​; //name
于 2012-05-18T12:47:56.417 に答える
1

IEの少なくとも一部のバージョンは、文字列文字にアクセスするためのインデックス作成をサポートしていないという漠然とした記憶があります。代わりにcharAtを使用してみてください。またはより良いアルゴリズム。ほぼ間違いなく、未定義の原因となっているのはf[x]です。

于 2012-05-18T14:11:41.727 に答える