回答
你可以使用GWT deferred binding using replacement并创建你的类的两个实现你使用正则表达式。
例如,假设您的课程名为Parser
,它包含除IE7以外的所有网络浏览器的代码。然后,您可以扩展Parser
并为IE7创建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
可变实施Parser
。
你可以找到更多的细节here。
+1如果您在不同的解析器之间有很多更改并希望将服务器和浏览器之间的流量降至最低,那么这是一个有效的答案。 – 2010-06-17 19:25:30
您可以使用下面的代码检测浏览器类型。
public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;
然后您可以调用该函数并查看浏览器的类型。例如下面的代码决定它是否是Internet Explorer。
if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}
This page拥有适用于所有浏览人的浏览器的用户代理。
['Window.Navigator .getUserAgent()'](http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/Window.Navigator.html#getUserAgent%28%29)改为你的JSNI方法? – 2011-05-09 09:01:07
我如何知道浏览器是否是'Mozilla Fire Fox/Safari/Opera/Chrome'。你可以发布与其他浏览器相同的条件,就像你为IE做的一样。 – Jagadeesh 2012-08-07 09:33:19
此外,这将返回**错误** ** IE11 **,因为它是userAgent字符串不包含'msie'。应该使用'contains(“msie”)||包含(“三叉戟”)匹配** IE11 **。 – Yura 2014-08-04 09:38:52
如果您使用的是GXT库,你可以使用GXT .isChrome检测铬,你可以找到GXT类的不同的数据成员来检测特定的浏览器。
使用第三方库进行这种基本/平凡的任务(不管它们可能用于其他目的的流行)是非常糟糕的习惯。 – 2011-10-10 08:47:49
虽然downvoting仍然有点苛刻。 GXT是一个非常受欢迎的图书馆,找到这篇文章的人可能已经在使用它了。 – 2012-07-17 11:41:10
- 1. 浏览器版本检测
- 2. grails中的浏览器版本检测
- 3. jQuery的浏览器版本检测
- 4. 浏览器版本或错误检测
- 5. 当前浏览器版本检测
- 6. php检测浏览器版本HTTP_USER_AGENT
- 7. 浏览器版本测试
- 8. 检测浏览器/版本与JavaScript与检测服务器端?
- 9. 检测哪个浏览器在Java GWT
- 10. 检测GWT中的移动浏览器
- 11. 使用PHP检测IE浏览器版本
- 12. 使用mod_rewrite检测多个浏览器和版本
- 13. 未使用JavaScript的浏览器版本检测?
- 14. 用于检测浏览器版本的XML/Javascript
- 15. 从浏览器可靠地检测.NET Framework可用性/版本
- 16. 跨浏览器测试工具,包括浏览器版本
- 17. 浏览器检测
- 18. 浏览器检测
- 19. 浏览器检测
- 20. 使用javascript检测浏览器用户
- 21. 检查浏览器内的JRE版本
- 22. 使用Javascript检测Chrome浏览器和Safari浏览器
- 23. 使用Javascript检测浏览器类型?
- 24. 如何使用JavaScript检测浏览器?
- 25. 使用javascript检测浏览器视口
- 26. 使用AJAX检测Chrome浏览器
- 27. 检测使用JQuery的浏览器
- 28. 使用jQuery检测浏览器
- 29. 使用javascript的Firefox浏览器检测
- 30. 如何使用jQuery检测浏览器?
你能为我们描述IE7的缺陷吗?什么是示例正则表达式以及IE7以何种方式出错?以及其他浏览器是否正确?我认为这不会影响问题或答案,只是希望能够在这里为后人提供这方面的信息。 – 2010-06-17 20:42:39
我有一个密码正则表达式匹配除了IE7以外的每个浏览器中的== true。 ('=。* \\ d)(?=。* [az])(?=。* [AZ])。{8,24})“ – Stevko 2010-06-18 06:24:22