2013-02-04 110 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) –