Object不支持此属性或方法:IE10中的“Document.getElementById”

时间:2013-10-10 10:51:37

标签: vbscript internet-explorer-10

我不得不在IE10中调试一些vbscript。该脚本启动了微软远程桌面ActiveX控件,并且完全可以使用IE9。在IE10(非兼容模式)中,它会抛出错误“对象不支持此属性或方法:'Document.getElementById'”

代码的相关部分是

sub OnControlLoad
   set Control = Document.getElementById("MsRdpClient")
   if Not Control is Nothing then
      if Control.readyState = 4 then
         Document.all.connectButton.disabled = FALSE
      end if
   end if
end sub

并且id为MsRdpClient的对象是

<OBJECT language="vbscript" ID="MsRdpClient"
onreadystatechange="OnControlLoad"
CLASSID="CLSID:9059f30f-4eb1-4bd2-9fdc-36f43a218f4a"
CODEBASE="msrdp.cab#version=5,1,2600,1095"
WIDTH=800
HEIGHT=600>
</OBJECT>

我已经测试了一些非常简单的脚本,例如

<script language="VbScript">
Function btnCheck_OnClick()
    MsgBox ("test")
    MsgBox (Document.getElementById("txtName").Value) 
End Function

</script>

<form name="form1" method="post" action="">
<input type="text" name="txtName" id="txtName" value="TEST">
<input type="button" name="btnCheck" value="GetValue">
</form>

并且这会在IE10非兼容模式下抛出相同的错误(Object不支持此属性或方法:'Document.getElementById'),但在IE10兼容模式和IE9中工作正常。有没有人知道为什么vbscript中的文档对象没有getElementByID方法可用,更重要的是,如何绕过它?

1 个答案:

答案 0 :(得分:1)

这是文件,而不是文件。我怀疑旧版IE的行为不正确。

MDN