2013-02-04 102 views
-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中没有按预期的那样工作,但对其他浏览器可以正常工作。带Internet Explorer 8的JavaScript

在IE8中,即使在字符串stringContent中找到toSearch中的内容,它也会进入循环。

我不知道问题是否与indexOf方法或我的代码中的其他地方。让我知道一个方法来解决这个问题!谢谢!

UPDATE

我只注意到了,在IE浏览器中,toSearch变量显示为 “\” d调试:\企业\ “”,而不是 “d:\公司”(在Mozilla和其他浏览器)。

任何想法来克服这一点?

+0

可以尝试更改VAR元素,其他一些名字,例如: var elem,看看它是否工作 – Satya

+0

雅我现在试过了。它甚至不工作 – LGAP

回答

1

正如你可以在compatibility table上看到的,它在IE8中不可用。

你可以把一个正则表达式的帐户,或者在回退从MDN为:

+0

我试图将indexOf实现粘贴到我的脚本开头。但即使那样,它也没有奏效。 – LGAP

+0

如何用正则表达式来做到这一点? – LGAP

+0

看到这个:[是否有允许正则表达式的JavaScript的String.indexOf()版本?](http://stackoverflow.com/a/274094/612202) –