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

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

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

3 ответа

Решение

Вы можете использовать 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
}

На этой странице есть пользовательский агент практически для каждого браузера, известного человеку.

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

Другие вопросы по тегам