Подтвердить что ты не робот

Определить версию браузера с помощью GWT?

Есть ли GWT api, который скажет мне, какую версию браузера он обнаружил?

Я нашел ошибку с обработкой регулярных выражений IE7 и должен кодировать некоторые сложные выражения String.matches().

4b9b3361

Ответ 1

Вы можете использовать отложенную привязку 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.

Подробнее здесь.

Ответ 2

Вы можете определить тип браузера, используя следующий код.

public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;

Затем вы можете вызвать эту функцию и посмотреть тип браузера. Например, приведенный ниже код решает, является ли он интернет-проводником или нет.

if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}

Эта страница содержит User Agent для всех браузеров, известных человеку.

Ответ 3

Если вы используете библиотеку GXT, вы можете использовать GXT.isChrome для обнаружения хрома, и вы можете найти разных членов данных класса GXT для обнаружения определенного браузера.