-1
var id = data.rslt;
var element = id.attr("crawlLocation");
if (element.indexOf("\\") != -1){
var toSearch = element.substring(0,element.lastIndexOf("\\"));
toSearch = "\"" + toSearch + "\"";
}
var stringContent = getInnerHTML('selectedCustodiansForIngestDiv');
if(stringContent.indexOf(toSearch) == -1){
  //This loop works fine on Firefox but not in IE8
}

function getInnerHTML(elmtId) {
var innerHTML = "";
if ($gElem(elmtId) != null) {
    innerHTML = document.getElementById(elmtId).innerHTML;
}
return innerHTML;
}

在上面的代码中,该indexOf方法的 if 条件在 IE8 中无法正常工作,但在其他浏览器中可以正常工作。

在 IE8 中,即使toSearch在 string 中找到 in 的内容stringContent,它也会进入循环内部。

我不确定问题出在indexOf方法上还是代码中的其他地方。让我知道解决此问题的方法!谢谢!

更新

我刚刚在调试时注意到,在 IE 中,toSearch 变量显示为“\”D:\company\“”而不是“D:\company”(在 mozilla 和其他浏览器中)。

有什么想法可以克服这个吗?

4

1 回答 1

1

正如您在此兼容性表中看到的,它在 IE8 中不可用。

您可以考虑使用 RegEx 或查看 MDN 的回退:

于 2013-02-04T08:43:35.043 回答