所属分类:
Properties
>
Properties of the Global jQuery Object
|
Utilities
|
Deprecated
>
Deprecated 1.9
英文文档:
jQuery.support
它们代表了不同的浏览器功能或错误存在的属性集合。当他们不再需要在内部以提高页面的启动性能时,这些特定属性可能会被删除。
对于你自己的项目功能检测的需求,
我们强烈建议使用外部库,比如
Modernizr
的,而不是依赖于
jQuery.support
上的属性。
添加的版本:
1.3
jQuery.support
注:官网中以下全部内容已经被删除,我们强烈建议浏览器功能性检测不要使用
jQuery.support
上的属性。而使用比如
Modernizr
这样的外部类库!
与使用
$.browser
来检测 user agent 或者根据不同的浏览器改变页面的展示效果相比,使用
功能检测
是更好的作法。为了使该该过程变得更简单,jQuery 进行了很多这样的测试,来设置
jQuery.support
对象的属性。
由于 jQuery 内部需要使用这些方法来进行检测,所以它们会在
每次
加载页面时被执行。下面列出了一些可用于检测的属性,但是某些不建议使用的或被删除的属性并没有被列出来,因为这些属性不是讨论的重点,而且当 jQuery 的内部代码不再需要某些属性时,它们就会被移除。
以下是解释如何使用少的资源特征检测工作:
http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting
http://www.jibbering.com/faq/faq_notes/not_browser_detect.html
http://yura.thinkweb2.com/cft/
cors
如果浏览器能创建
XMLHttpRequest
对象,并且该
XMLHttpRequest
对象含有
withCredentials
属性的话,则返回 true。在尚不支持 cors 属性,但是允许跨域
XHR
请求(例如 windows gadget, 等)的环境下,要启用跨域请求,请进行如下设置
$.support.cors = true;
。
CORS WD
hrefNormalized
如果
.getAttribute()
方法返回的
href
属性值没有发生变化,并不是标准化成完整的 URL 的话,则返回 true。(目前在 IE 中会返回 false,因为 IE 会将 URL 标准化。)
DOM l3 spec
leadingWhitespace
如果使用 .innerHTML 进行内容插入时,插入后的结果和所提供的内容完全一致,并且保留开头的空白字符,则返回 true。(在 IE 6-8 中返回 false)。
HTML5 WD
scriptEval()
如果通过标准的 DOM 操作方法,例如,
.appendChild()
和
.createTextNode()
,向文档中插入内嵌脚本时,如果脚本被自动计算并执行了,则返回 true。(目前在 IE 中会返回 false,因为 IE 使用
.text
来插入可执行的脚本)。
注意: 该属性在 jQuery 1.6 中已经被移除。
在 jQuery 1.5.1 之前,
scriptEval()
方法还是一个静态的
scriptEval
属性。将静态属性改成方法,允许测试被推迟到第一次使用时进行,是为了防止违反内嵌脚本的内容安全策略。
HTML5 WD
style
如果可以通过 DOM 属性访问元素的 inline 样式,以满足 DOM Level 2 规约,则返回 true。在这种情况下,使用
.getAttribute('style')
能够返回 style 的值。在 Internet Explorer 中,则要使用
.cssText
来达到相同的目的。
DOM l2 Style spec
tbody
如果允许一个空的
<table>
元素在没有
<tbody>
元素的情况下存在,则返回 true。根据 HTML 规范,
<table>
的子元素是可选的,因此,在完全符合规范的浏览器中,该属性的值应该是 true。如果返回了 false,则我们必须要考虑浏览器隐式注入
<tbody>
标签的可能性。(目前在 IE 中会返回 false,因为如果通过
innerHTML
进行赋值的字符串中不存在
tbody
的话,则 IE 会自动插入
tbody
)。
HTML5 spec
p { color:blue; margin:20px; }
<script src="https://code.jquery.com/jquery-latest.js"></script>
$("p").html("This frame uses the W3C box model: <span>" +
jQuery.support.boxModel + "</span>");