0

我不得不在 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 非兼容模式下引发相同的错误(对象不支持此属性或方法:'Document.getElementById'),但在 IE10 兼容模式和 IE9 下工作正常。有谁知道为什么 vbscript 中的文档对象没有可用的 getElementByID 方法,更重要的是,如何绕过它?

4

1 回答 1

2

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

MDN

于 2013-10-10T10:55:47.083 回答