所属分类: 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
<!DOCTYPE html>
<html>
<head>
<style>
p { color:blue; margin:20px; }
span { color:red; }
</style>
<script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p>
</p>
<script>
$("p").html("This frame uses the W3C box model: <span>" +
jQuery.support.boxModel + "</span>");
</script>
</body>
</html>