私たちのサイトは .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;
}