Есть ли GWT api, который скажет мне, какую версию браузера он обнаружил?
Я нашел ошибку с обработкой регулярных выражений IE7 и должен кодировать некоторые сложные выражения String.matches().
Есть ли GWT api, который скажет мне, какую версию браузера он обнаружил?
Я нашел ошибку с обработкой регулярных выражений IE7 и должен кодировать некоторые сложные выражения String.matches().
Вы можете использовать отложенную привязку GWT с использованием замены и создать две реализации вашего класса, в которых вы используете регулярное выражение.
Например, предположим, что ваш класс имеет имя Parser
и содержит код для всех веб-браузеров, за исключением IE7. Затем вы можете расширить Parser
и создать класс ParserIE7
для IE7. Затем в вашем конфигурационном файле модуля GWT вы можете добавить:
<replace-with class="Parser">
<when-type-is class="Parser"/>
</replace-with>
<replace-with class="ParserIE7">
<when-type-is class="Parser" />
<when-property-is name="user.agent" value="ie7"/>
</replace-with>
Затем, вызывая
Parser parser = GWT.create(Parser.class);
у вас должна быть правильная (зависящая от веб-браузера) реализация Parser
в переменной Parser
.
Подробнее здесь.
Вы можете определить тип браузера, используя следующий код.
public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;
Затем вы можете вызвать эту функцию и посмотреть тип браузера. Например, приведенный ниже код решает, является ли он интернет-проводником или нет.
if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}
Эта страница содержит User Agent для всех браузеров, известных человеку.
Если вы используете библиотеку GXT, вы можете использовать GXT.isChrome для обнаружения хрома, и вы можете найти разных членов данных класса GXT для обнаружения определенного браузера.