jQuery.support返回: Object
描述:
它们代表了不同的浏览器功能或错误存在的属性集合。当他们不再需要在内部以提高页面的启动性能时,这些特定属性可能会被删除。
对于你自己的项目功能检测的需求,
我们强烈建议使用外部库,比如Modernizr的,而不是依赖于jQuery.support上的属性。
添加的版本: 1.3jQuery.support
注:官网中以下全部内容已经被删除,我们强烈建议浏览器功能性检测不要使用
jQuery.support上的属性。而使用比如Modernizr这样的外部类库!与使用 $.browser 来检测 user agent 或者根据不同的浏览器改变页面的展示效果相比,使用功能检测是更好的作法。为了使该该过程变得更简单,jQuery 进行了很多这样的测试,来设置 jQuery.support 对象的属性。
由于 jQuery 内部需要使用这些方法来进行检测,所以它们会在每次加载页面时被执行。下面列出了一些可用于检测的属性,但是某些不建议使用的或被删除的属性并没有被列出来,因为这些属性不是讨论的重点,而且当 jQuery 的内部代码不再需要某些属性时,它们就会被移除。
以下是解释如何使用少的资源特征检测工作:
对于你自己的项目功能检测的需求,
我们强烈建议使用外部库,比如Modernizr的,而不是依赖于jQuery.support上的属性。
在这些测试包括jQuery.support如下:
-
ajax如果浏览器能创建XMLHttpRequest对象,则返回 true。 -
boxModel如果页面是根据 W3C CSS Box Model (当 IE 6 和 7 工作在 Quirks 模式下,该属性值是 false) 进行描绘的,则返回 true。在文档 ready 发生之前,该属性值一直是 null。 -
changeBubbles如果 change 事件满足 W3C DOM event model 的要求,在 DOM 树中向上冒泡时,则返回 true。(目前 IE 会返回 false,因为冒泡行为是 jQuery 模拟的。) -
checkClone如果浏览器正确克隆了文档片断中的复选框或单选按键的状态,则返回 true。 -
checkOn当复选框在没有赋值的情况下,其默认值是 "on",则返回 true。 -
cors如果浏览器能创建XMLHttpRequest对象,并且该XMLHttpRequest对象含有withCredentials属性的话,则返回 true。在尚不支持 cors 属性,但是允许跨域 XHR 请求(例如 windows gadget, 等)的环境下,要启用跨域请求,请进行如下设置$.support.cors = true;。 CORS WD -
cssFloat如果属性值含有的 CSS float 值是 .cssFloat 的话,则返回 true。其中, .cssFloat 是在 CSS Spec 中定义的。(目前在 IE 中,该属性的返回值是 false,因为 IE 使用了 styleFloat 来代替该属性)。 -
hrefNormalized如果.getAttribute()方法返回的href属性值没有发生变化,并不是标准化成完整的 URL 的话,则返回 true。(目前在 IE 中会返回 false,因为 IE 会将 URL 标准化。) -
htmlSerialize如果浏览器能够使用元素的.innerHTML属性来序列化/插入<link>元素的话,则返回 true。(目前在 IE 中会返回 false)。 -
leadingWhitespace如果使用 .innerHTML 进行内容插入时,插入后的结果和所提供的内容完全一致,并且保留开头的空白字符,则返回 true。(在 IE 6-8 中返回 false)。 -
noCloneChecked如果克隆后的 DOM 元素保持了.checkedexpando 状态,则返回 true。 (目前在 IE 中会返回 false)。 (在 jQuery 1.5.1 中追加的该属性) -
noCloneEvent如果克隆后的 DOM 元素上并没有被克隆元素上的事件(也就是说,源元素不是被克隆的。),则返回 true。(目前在 IE 中会返回 false)。 -
opacity如果浏览器能正确的处理透明度属性,则返回 true。(目前在 IE 中会返回 false,因为 IE 使用了 alpha 滤镜来代替该属性)。 -
optDisabled如果含有被禁用的 option 元素的 select 元素没有被自动禁用的话,则返回 true。 -
optSelected如果被默认选中的<option>元素是通过selected属性被选中的,则返回 true。 -
scriptEval()如果通过标准的 DOM 操作方法,例如,.appendChild()和.createTextNode(),向文档中插入内嵌脚本时,如果脚本被自动计算并执行了,则返回 true。(目前在 IE 中会返回 false,因为 IE 使用.text来插入可执行的脚本)。注意: 该属性在 jQuery 1.6 中已经被移除。在 jQuery 1.5.1 之前,scriptEval()方法还是一个静态的scriptEval属性。将静态属性改成方法,允许测试被推迟到第一次使用时进行,是为了防止违反内嵌脚本的内容安全策略。 -
style如果可以通过 DOM 属性访问元素的 inline 样式,以满足 DOM Level 2 规约,则返回 true。在这种情况下,使用.getAttribute('style')能够返回 style 的值。在 Internet Explorer 中,则要使用.cssText来达到相同的目的。 -
submitBubblessubmit 事件根据 W3C DOM event model 的规定,能够在 DOM 树中向上冒泡,则返回 true。(目前在 IE 中会返回 false,因为冒泡行为是 jQuery 模拟的)。 -
tbody如果允许一个空的<table>元素在没有<tbody>元素的情况下存在,则返回 true。根据 HTML 规范,<table>的子元素是可选的,因此,在完全符合规范的浏览器中,该属性的值应该是 true。如果返回了 false,则我们必须要考虑浏览器隐式注入<tbody>标签的可能性。(目前在 IE 中会返回 false,因为如果通过innerHTML进行赋值的字符串中不存在tbody的话,则 IE 会自动插入tbody)。
例子:
Example: 返回 iframe 的盒子模型。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
|
Demo:
Example: 在 Internet Explorer 中,访问的页面处于 QuirksMode,则返回 false。
|
1
|
|
Result:
|
1
|
|
