GWT で最もクリーンな方法は、deferred-binding を使用し、スクリプトにScriptInjector
IE9 順列を挿入することです。または、ホストページによってスクリプトが読み込まれるようにします。その場合、条件付きコメントを使用できます(Stanoが提案するように)。
遅延バインディングでは、IE9 の特定の実装で「遅延バインド」するクラスを作成する必要があります。
class SvgFix {
public void fix() { /* no op */ }
}
class SvgFixIE9 {
@Override
public void fix() {
ScriptInjector.fromUrl(GWT.getModuleBaseForStaticFiles() + "ie9svgfix.js")
.setWindow(ScriptInjector.TOP_WINDOW)
.inject();
}
}
にEntryPoint
、スクリプトを挿入します。
GWT.<SvgFix>create(SvgFix.class).fix();
最後に、順列に基づいて適切な実装を選択します。
<replace-with class="com.example.client.SvgFixIE9">
<when-type-assignable class="com.example.client.SvgFix" />
<when-property-is name="user.agent" value="ie9" />
</replace-with>
ところで、<script>
gwt.xml ファイルはxsiframe
リンカーでサポートされていないことに注意してください。今後はそれを使用することをお勧めします (他のすべてのリンカーのすべての利点があり、欠点はありません。さらに、Super Dev が追加されます)。モード、柔軟性/構成可能性など)