在GWT的乾淨方式是使用遞延結合,並與在該ScriptInjector
注入腳本IE9排列;或者讓主機頁面加載腳本,在這種情況下,您可以使用條件註釋(as suggested by 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
鏈接器,我會的鼓勵您繼續使用它(它具有所有其他鏈接器的所有優點,並且沒有任何缺點,此外還增加了超級開發模式,靈活性/可配置性等)。