2010-06-21 2 views
2

есть ли способ сказать GWT для компиляции разного кода Java на целевой браузер?GWT - Условная компиляция на основе браузера

GWT сегодня создает другой скрипт для каждого целевого браузера, все из которого получены из одного и того же исходного файла. Однако при работе с нестандартными функциями в разных браузерах (например, перетаскивание и перетаскивание файлов в браузер) поддержка отличается от разных браузеров, требуя написать другой код.

Есть ли что-то вроде

// if IE 
.. some Java code to compile into the IE script 
// else if chrome 
.. some Java code to compile into the chrome script 

т.д.

ответ

11

Да, отклонения от курса. Вещь называется отложенным связыванием. Проверьте http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html

Вот отрывок

<module> 

    <!-- ... other configuration omitted ... --> 

    <!-- Fall through to this rule is the browser isn't IE or Mozilla --> 
    <replace-with class="com.google.gwt.user.client.ui.impl.PopupImpl"> 
    <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl"/> 
    </replace-with> 

    <!-- Mozilla needs a different implementation due to issue #410 --> 
    <replace-with class="com.google.gwt.user.client.ui.impl.PopupImplMozilla"> 
    <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl" /> 
    <any> 
     <when-property-is name="user.agent" value="gecko"/> 
     <when-property-is name="user.agent" value="gecko1_8" /> 
    </any> 
    </replace-with> 

    <!-- IE has a completely different popup implementation --> 
    <replace-with class="com.google.gwt.user.client.ui.impl.PopupImplIE6"> 
    <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl"/> 
    <when-property-is name="user.agent" value="ie6" /> 
    </replace-with> 
</module> 

Для других браузеров, я считаю, что это будет работать без падения через правила. Я думаю, что падение через правило здесь только для того, чтобы ускорить это. Не принимайте это как должное, поскольку я не уверен на 100%.

Это официальная документация GWT.

Смежные вопросы