我不得不在 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 方法,更重要的是,如何绕过它?