Internet Explorer 10 の VBScript では window_OnLoad などで大文字小文字が混在できない

適用対象: Internet Explorer 10

現象


Windows Internet Explorer 10 で VBScript を使用して、イベントハンドラのメソッド名の定義で大文字小文字が混在する記述をした場合、window_onload イベント、window_onresize イベントを実行できません。

以下のような記述の Window_onLoad 部分が該当します。

<script language="VBScript">
<!--
Sub Window_onLoad()
MsgBox ( "OK" )
End Sub
-->
</script>

本動作は、Internet Explorer 10 Standards (IE10 標準)、Internet Explorer 10 Quirks (IE10 Quirks) および Internet Explorer 9 Standards (IE10 の IE9 標準) モードでのみ発生します。

原因


Internet Explorer 10 では、スクリプト エンジンの高速化、および Web 標準への互換性を高めるため、新しいオブジェクト管理の仕組みが実装されています。新しいドキュメント オブジェクト モデルでは、オブジェクトの検証は 大文字小文字を厳密に判断します。

解決方法


以下のいずれかの方法が有効です。
  1. window_onload、window_onresize のように大文字と小文字を混在せずに定義する (大文字のみ、小文字のみ)
  2. VBScript ではなく、JScript で定義する
  3. IE5 Quirks、IE7 標準、IE8 標準のいずれかのドキュメント モードを使用する

状況


 本動作は、Internet Explorer 10 で実装している新しいドキュメント オブジェクト モデルの影響により発生する動作上の制限です。