是否有 GWT api 会告诉我它检测到的浏览器版本?
我发现 IE7 的正则表达式处理存在缺陷,需要围绕一些棘手的 String.matches() 表达式进行编码。
是否有 GWT api 会告诉我它检测到的浏览器版本?
我发现 IE7 的正则表达式处理存在缺陷,需要围绕一些棘手的 String.matches() 表达式进行编码。
您可以使用下面的代码检测浏览器类型。
public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;
然后您可以调用该函数并查看浏览器的类型。例如,下面的代码决定它是否是 Internet Explorer。
if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}
这个页面有几乎所有人类已知的浏览器的用户代理。
您可以使用替换来使用 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);
您应该有一个适当的(取决于网络浏览器的)Parser
inparser
变量实现。
您可以在此处找到更多详细信息。
如果您使用 GXT 库,您可以使用GXT .isChrome 来检测 chrome,您可以找到GXT 类的不同数据成员来检测特定浏览器。