0

私たちのサイトは .asp で JavaScript を実行していますが、indexOf 関数が期待どおりに動作していません。以下の例を参照してください (例と同じように一部の変数が変更されています。ただし、すべてのタイプは同じです)。

var SID = "foo";
var getCookie = "foo##%##bar##%##bloo"
var cookieArr = getCookie.split("##%##");

if(cookieArr.indexOf(SID)!=-1){
    console.log("found") //found
} else {
    console.log("not found") //not found
}

これはコンソールでは正しく機能しますが、サーバー上で実行すると、if ステートメント行で「オブジェクトはこのプロパティまたはメソッドをサポートしていません」が返されます。

チェックを 'cookieArr[0].indexOf(SID)!=-1' に変更すると、サーバー側で true に解決されることに気付きましたが、これは明らかに良くありません。

これが既知の動作である場合、値の存在を配列で検索するには、代わりにどのソリューションを使用する必要がありますか?

編集:

今のところ、以下の汚い回避策を使用しますが、上記が機能しない理由を誰かが知っていれば、まだ興味があります

function checkArrForString(str,arr){
    for(x=0;x<arr.length;x++){
        if(arr[x]==str){
            return x;
        }
    }
    return -1;
}
4

0 に答える 0