请教关于JS获取浏览器信息的疑问

vc_learner 2015-07-27 06:26:30
关通过JS获取浏览器名称和版本 ,
网上找了一些 ,
好多都通过如
s = ua.match(/msie ([/d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox//([/d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome//([/d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([/d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version//([/d.]+).*safari/)) ? Sys.safari = s[1] : 0;

来判断,
但是我通过读取不同浏览器该值,发现里边都有多种浏览器名称 ;
那么是否会判断错误 ?
比如 :

ie8: userAgent =Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)

chrome: userAgent =Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36

ff: userAgent =Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0

maxthon: userAgent =Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.6.2000 Chrome/30.0.1599.101 Safari/537.36


比如使用时 maxthon时 Sys.chrome 也会被赋值,造成 会被认为是 chrome,
但是看网上好多资料都这么判断 ,
是我理解错了?
请各位大侠指点,谢谢 !

...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2015-07-29
  • 打赏
  • 举报
回复
mathon是多核的吧,兼容是ie的,如果是急速是webkit的,和360这种一样,所以你要区分具体的还是比较难搞的
vc_learner 2015-07-28
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
我觉得应该通过判断浏览器是否存在某一对象或属性方法的方式来确定浏览器的版本。
嗯,这也是一种方式
vc_learner 2015-07-28
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
功能测试呗 毕竟多数情况下都只在乎浏览器支不支持某个东西 二不关心浏览器是什么
嗯 ,确实如此 我实际也就想判断是否是Chrome41以前的 还是以后的 ; 但是网上好多资料都通过判断是否包含某字段来区分 ,还以为自己理解错了呢
似梦飞花 2015-07-27
  • 打赏
  • 举报
回复
功能测试呗 毕竟多数情况下都只在乎浏览器支不支持某个东西 二不关心浏览器是什么
天际的海浪 2015-07-27
  • 打赏
  • 举报
回复
我觉得应该通过判断浏览器是否存在某一对象或属性方法的方式来确定浏览器的版本。

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧