Определить версию браузера с помощью GWT? - PullRequest
26 голосов
/ 17 июня 2010

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

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

Ответы [ 3 ]

26 голосов
/ 17 июня 2010

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

Вы можете найти более подробную информацию здесь .

26 голосов
/ 17 июня 2010

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

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

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

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

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

7 голосов
/ 04 февраля 2011

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

...