Javascript:认为输入字段未定义

时间:2014-02-10 19:58:37

标签: javascript html

我正在开发一个遗留的网络应用程序,试图让一些旧的以IE为中心的代码浏览器可移植,并且遇到了一个我不太了解的问题。

以下是我正在查看的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>

在所有当前的浏览器上,这样可以正常工作,因为单击文档“Documents”会调用expandMenu,而第3个参数在函数中是可用的,除了在兼容模式下时的IE中,它拒绝调用expandMenu并抱怨H_documents未定义。

有人能给我一个线索:)

由于

1 个答案:

答案 0 :(得分:0)

即使存在ID =“H_Documents”的元素,第二行中的变量H_Documents也不会自动引用该元素。

我想在代码中的某处有一个类似的结构:

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

旧版本的IE不支持addEventListener,而是支持document.attachEvent,它或多或少相同。我建议您需要测试addEventListener是否可用,否则切换到attachEvent。