Определить версию браузера с помощью 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 для обнаружения определенного браузера.