2014-02-10 49 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