2014-02-10 37 views
0

我正在嘗試使舊的以IE瀏覽器爲中心的代碼瀏覽器變得可移植,並且遇到了一個我不太明白的問題。Javascript:認爲輸入字段未定義

下面是HTML的一個片段,我看着

<INPUT ID="H_Documents" NAME="H_Documents" TYPE=hidden VALUE="off"/> 
<TD ID="B_Documents" CLASS=menuoff NOWRAP WIDTH=11% VALIGN=CENTER onClick="if(document.readyState=='complete')expandMenu(T_Documents,B_Documents,H_Documents)" TITLE="Click to Show/Hide Documents" onmouseover="tabhiliteon(this)" onmouseout="tabhiliteoff(this)"> 
    Documents 
</TD> 

在所有的主流瀏覽器能正常工作,在對文本「文件」點擊呼叫expandMenu和第三個參數是可用的編緝這個函數除了在IE的時候不是在兼容模式下,它拒絕調用expandMenu並且抱怨說H_documents是未定義的。

有人可以給我一個線索:)

由於

+1

哪個IE版本有問題? – pstenstrm

+1

感覺像1998. – enapupe

+0

這不是有效的HTML。 – Jonathan

回答

0

即使有本與ID =「H_Documents」的元素,在第二行中的變量H_Documents不是自動地參考該元素。

我想,在代碼中某處有一個像結構:

document.addEventListener(....){ 
    var H_Documents = document.getElementById('H_Documents') 
} 

舊版本的IE不支持的addEventListener,而是支持document.attachEvent這或多或少是相同的。我建議你需要測試addEventListener是否可用,否則切換到attachEvent。

+0

他有可能在他發佈的代碼片段之外定義變量嗎? – Jack

+0

我很確定是這樣,因爲它在現代瀏覽器中工作。 –

+0

H_documents在HTML或JS中都沒有定義。 – scholsie