码迷,mamicode.com
首页 > 其他好文 > 详细

浏览器比重和判别

时间:2015-04-08 14:35:13      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

 

根据百度数据统计,2015年第一季度,ie8仍有相当大的市场份额

技术分享

于是浏览器的兼容性仍然不能忽略。今天总结一下,如何判断浏览器版本,以加载不同的代码

一 最原始的js 

  window.navigator 对象

技术分享

但w3c中明确指出不建议用此方法,原因是此属性可被浏览器更改

 

2 jQuery $.browser

console.log($.browser)

  chrome

技术分享

火狐

技术分享

ie 8

技术分享

但新版的jQuery已不支持$.browser

 

3 jQuery.support

API文档

jQuery.support主要包括以下测试:
boxModel: 如果这个页面和浏览器是以W3C CSS盒式模型来渲染的,则等于true。通常在IE 6和IE 7的怪癖模式中这个值是false。在document准备就绪前,这个值是null。
cssFloat: 如果用cssFloat来访问CSS的float的值,则返回true。目前在IE中会返回false,他用styleFloat代替。
hrefNormalized: 如果浏览器从getAttribute("href")返回的是原封不动的结果,则返回true。在IE中会返回false,因为他的URLs已经常规化了。
htmlSerialize: 如果浏览器通过innerHTML插入链接元素的时候会序列化这些链接,则返回true,目前IE中返回false。
leadingWhitespace: 如果在使用innerHTML的时候浏览器会保持前导空白字符,则返回true,目前在IE 6-8中返回false。
noCloneEvent: 如果浏览器在克隆元素的时候不会连同事件处理函数一起复制,则返回true,目前在IE中返回false。
objectAll: 如果在某个元素对象上执行getElementsByTagName("*")会返回所有子孙元素,则为true,目前在IE 7中为false。
opacity: 如果浏览器能适当解释透明度样式属性,则返回true,目前在IE中返回false,因为他用alpha滤镜代替。
scriptEval: 使用 appendChild/createTextNode 方法插入脚本代码时,浏览器是否执行脚本,目前在IE中返回false,IE使用 .text 方法插入脚本代码以执行。
style: 如果getAttribute("style")返回元素的行内样式,则为true。目前IE中为false,因为他用cssText代替。
tbody: 如果浏览器允许table元素不包含tbody元素,则返回true。目前在IE中会返回false,他会自动插入缺失的tbody。
  

 

 

浏览器比重和判别

标签:

原文地址:http://www.cnblogs.com/gongchengshi1803275951/p/4402151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!