Ste*_*vko 26 browser gwt version-detection
是否有GWT api会告诉我它检测到哪个浏览器版本?
我发现IE7的正则表达式处理有一个缺陷,需要编写一些棘手的String.matches()表达式.
Rom*_*eau 26
您可以使用以下代码检测浏览器类型.
public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;
Run Code Online (Sandbox Code Playgroud)
然后,您可以调用该函数并查看浏览器的类型.例如,下面的代码决定它是否是Internet Explorer.
if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}
Run Code Online (Sandbox Code Playgroud)
此页面包含几乎所有人都知道的浏览器的用户代理.
Pio*_*otr 26
您可以使用替换使用GWT延迟绑定,并创建您使用正则表达式的类的两个实现.
例如,假设您的类已命名,Parser并且它包含除IE7之外的所有Web浏览器的代码.然后,您可以扩展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>
Run Code Online (Sandbox Code Playgroud)
然后通过电话
Parser parser = GWT.create(Parser.class);
Run Code Online (Sandbox Code Playgroud)
你应该Parser在parser变量中有一个适当的(依赖于Web浏览器)实现.
你可以在这里找到更多细节.
小智 7
如果您使用的是GXT库,则可以使用GXT .isChrome来检测chrome,您可以找到GXT类的不同数据成员来检测特定的浏览器.