IE9でGWTを実行するとDOM Exceptionが発生する
GWTアプリケーションをDevmodeで起動し、最近インストールしたInternet Exploler 9で実行すると、以下のように例外が発生して止まってしまう。
デバッガで見てみると、Document.createElementでエラーが発生しているようだ。
この問題に関しては同GWTのBlogでも取り上げられていおり、
Google Web Toolkit Blog Update on GWT support for IE9
http://code.google.com/p/google-web-toolkit/issues/detail?id=5058&q=ie9&colspec=ID%20Type%20Status%20Owner%20Milestone%20Summary%20Stars
http://code.google.com/p/google-web-toolkit/issues/detail?id=5125
IE9からはcreateElementメソッドではブラケットを指定できないように変更されたのが直接の原因らしい。
Angle Brackets Are Not Allowed in the createElement Method (Windows)
IE9準拠のレンダリングモードでは以下のスクリプトの実行は前述した例外になるということだ。
var elm = document.createElement("<div id='myDiv'>");
正式にはGWT2.3で対応するようだが、当面は以下のメタタグをGWTのホストページ(モジュール名.html)に挿入することでエラーを回避できるようだ。(レンダリングモードをIE8標準準拠に固定する)
<meta http-equiv="X-UA-Compatible" content="IE=8" />
まあ原因が判ったから良とするが、そもそもIE9のこの振る舞いは標準なのか異端なのか。そこが気になるのだが。