jQuery 工具--浏览器及特性检测

浏览器及特性检测

属性列表

属性说明
$.support1.9-用于返回用户当前使用的浏览器的特性或bug信息。该属性是一个对象。
$.browser1.9-用于返回用户当前使用的浏览器的相关信息。该属性是一个对象。
$.boxModel1.9-用于检测浏览器是否使用标准盒模型渲染当前页面。

属性说明

jQuery.support:

该对象的属性并不是一成不变的,jQuery也并不保证指定的属性在未来的版本中一定可用,这些属性主要供插件或内核开发人员使用。

语法:
  • jQuery.support

jQuery 1.3 新增该静态属性。1.9废弃该静态属性

返回值

jQuery.support属性的返回值为Object类型。

对象属性

jQuery.support属性是一个对象,该对象属性较多,并且每个jQuery版本的属性都并不一致,请在使用前自行确定当前版本支持的属性。其常见属性如下:

属性说明
ajax如果浏览器可以创建XMLHttpRequest对象来执行AJAX请求,则返回true。
boxModel如果这个页面和浏览器是以W3C标准的CSS盒模型来渲染的,则等于true。通常在IE 6和IE 7的怪癖模式(QuirksMode)中这个值是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。

jQuery.support返回对象的属性是由JQuery版本决定,返回对象的属性值是由浏览器决定

代码:

// 必须是 1.9 之前(不含1.9)的 jQuery 版本
$.support.ajax; // 如果浏览器支持创建XMLHttpRequest对象,则返回true,否则为false$.support.boxModel; // 绝大多数浏览器返回true,在IE怪癖模式中返回false

jQuery.browser:

用于返回用户当前使用的浏览器的相关信息。该属性是一个对象。

该函数属于全局jQuery对象。

语法:
  • jQuery.browser

jQuery 1.0 新增该静态属性,但在 1.3 中被标记为已过时,并从 1.9 开始,被移除。

对象属性

jQuery.browser属性是一个对象,其属性会随着浏览器的不同而变化,其可能的属性如下:

属性说明
webkit1.4 新增 Boolean类型 指示是否是webkit内核的浏览器。如果是,则值为true。只有webkit内核的浏览器才具备该属性。
safariBoolean类型 指示是否是Apple Safari浏览器。如果是,则值为true。只有Safari浏览器才具备该属性。
operaBoolean类型 指示是否是Opera浏览器。如果是,则值为true。只有Opera浏览器才具备该属性。
msieBoolean类型 指示是否是微软IE浏览器。如果是,则值为true。只有IE浏览器才具备该属性。
mozillaBoolean类型 指示是否是Mozilla FireFox浏览器。如果是,则值为true。只有FireFox浏览器才具备该属性。
chrome1.8 新增 Boolean类型 指示是否是Google Chrome浏览器。如果是,则值为true。只有Chrome浏览器才具备该属性。
version1.1.3 新增 String类型 当前浏览器的版本号,例如:”6.0”、 “7.0”、 “32.0.1700.76”。

不建议使用该属性来检测浏览器,因为它是根据navigator.userAgent属性来确定浏览器信息的,因此它的识别并不一定准确。在 1.8 之前,它会将Chrome识别为Safari浏览器。

在 1.4 之前,无论何种浏览器,jQuery.browser对象具有除chrome外的所有属性,从 1.4 开始,jQuery.browser仅保留值为true的属性(以及 version)。

代码:

// 必须是 1.9 之前(不含1.9)的 jQuery 版本
$.browser.msie; // 在IE浏览器中为true,否则为true(或undefined)。

$.browser.version; // 当前浏览器的版本号

jQuery.boxModel:

该属性常用于检测IE浏览器使用的是标准模式(Standard Mode),还是怪癖模式(Quirks Mode)。标准模式返回true,怪癖模式则返回false。

语法:
  • jQuery.boxModel

jQuery 1.0 新增该静态属性,但在 1.3 中被标记为已过时,请使用jQuery.support.boxModel替代。从 1.8 开始,该属性被移除。

返回值

jQuery.boxModel属性的返回值为Boolean类型,如果浏览器使用标准盒模型渲染当前页面,则返回true,否则返回false。

在document准备就绪之前,该值返回undefined。

jQuery.boxModel在绝大多数浏览器中返回true,在IE浏览器的怪癖模式中返回false;

代码:

// 必须是 1.8 之前(不含1.8)的 jQuery 版本
document.writeln( $.boxModel );

// 1.3 ~ 1.7.x 请使用 $.support.boxModel 替代
document.writeln( $.support.boxModel );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三知之灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值