IE10 でいくつかの vbscript をデバッグする必要があります。このスクリプトは Microsoft リモート デスクトップ 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 メソッドが使用できない理由と、さらに重要なことに、それを回避する方法を知っている人はいますか?