27

是否有 GWT api 会告诉我它检测到的浏览器版本?

我发现 IE7 的正则表达式处理存在缺陷,需要围绕一些棘手的 String.matches() 表达式进行编码。

4

3 回答 3

28

您可以使用下面的代码检测浏览器类型。

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

然后您可以调用该函数并查看浏览器的类型。例如,下面的代码决定它是否是 Internet Explorer。

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

这个页面有几乎所有人类已知的浏览器的用户代理。

于 2010-06-17T18:40:25.743 回答
27

您可以使用替换来使用 GWT 延迟绑定,并创建您使用正则表达式的类的两个实现。

例如,假设您的类已命名Parser,并且它包含除 IE7 之外的所有 Web 浏览器的代码。然后您可以为 IE7 扩展Parser和创建ParserIE7类。然后在您的 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);

您应该有一个适当的(取决于网络浏览器的)Parserinparser变量实现。

您可以在此处找到更多详细信息。

于 2010-06-17T18:48:42.237 回答
7

如果您使用 GXT 库,您可以使用GXT .isChrome 来检测 chrome,您可以找到GXT 类的不同数据成员来检测特定浏览器。

于 2011-02-04T07:16:56.243 回答