mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
213 lines
15 KiB
HTML
213 lines
15 KiB
HTML
<article class="" id="post-">
|
||
<header class="entry-header">
|
||
<h1 class="entry-title">jQuery.support</h1>
|
||
<div class="entry-meta">
|
||
所属分类:<span class="category"><a href="/category/properties/">内部属性</a> > <a href="/category/properties/global-jquery-object-properties/">全局 jQuery 对象的属性</a></span><span class="category-divider"> | </span><span class="category"><a href="/category/utilities/">工具类</a></span><span class="category-divider"> | </span><span class="category"><a href="/category/deprecated/">弃用</a> > <a href="/category/deprecated/deprecated-1.9/">1.9 版本弃用的 API</a></span>
|
||
<span class="pull-right">英文文档:<a href="https://api.jquery123.com/jQuery.support/" target="_blank">jQuery.support</a></span>
|
||
</div><!-- .entry-meta -->
|
||
</header><!-- .entry-header -->
|
||
<!-- .entry-header -->
|
||
<div class="entry-content">
|
||
<article class="entry property" id="jQuery-support1"><h2 class="section-title">
|
||
<span>jQuery.support</span><span class="returns">返回: <a href="/Types/#Object">Object</a></span>
|
||
</h2>
|
||
<div class="entry-wrapper">
|
||
<p class="desc"><strong>描述: </strong>
|
||
它们代表了不同的浏览器功能或错误存在的属性集合。当他们不再需要在内部以提高页面的启动性能时,这些特定属性可能会被删除。
|
||
对于你自己的项目功能检测的需求,
|
||
我们强烈建议使用外部库,比如<a href="http://modernizr.com">Modernizr</a>的,而不是依赖于<code>jQuery.support</code>上的属性。
|
||
</p>
|
||
<ul class="signatures"><li class="signature"><h4 class="name">
|
||
<span class="version-details">添加的版本: <a href="/category/version/1.3/">1.3</a></span>jQuery.support</h4></li></ul>
|
||
<div class="warning">注:官网中以下全部内容已经被删除,我们强烈建议浏览器功能性检测不要使用<code>jQuery.support</code>上的属性。而使用比如<a href="http://modernizr.com">Modernizr</a>这样的外部类库!</div>
|
||
<div class="longdesc" id="entry-longdesc">
|
||
<p>与使用 <code>$.browser</code> 来检测 user agent 或者根据不同的浏览器改变页面的展示效果相比,使用<strong>功能检测</strong>是更好的作法。为了使该该过程变得更简单,jQuery 进行了很多这样的测试,来设置 <code>jQuery.support</code> 对象的属性。
|
||
</p>
|
||
<p><strong>由于 jQuery 内部需要使用这些方法来进行检测,所以它们会在<em>每次</em>加载页面时被执行。下面列出了一些可用于检测的属性,但是某些不建议使用的或被删除的属性并没有被列出来,因为这些属性不是讨论的重点,而且当 jQuery 的内部代码不再需要某些属性时,它们就会被移除。</strong></p>
|
||
<div class="warning">
|
||
<p>以下是解释如何使用少的资源特征检测工作:</p>
|
||
<ul>
|
||
<li>
|
||
<a href="http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting">http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://www.jibbering.com/faq/faq_notes/not_browser_detect.html">http://www.jibbering.com/faq/faq_notes/not_browser_detect.html</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://yura.thinkweb2.com/cft/">http://yura.thinkweb2.com/cft/</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>对于你自己的项目功能检测的需求,
|
||
我们强烈建议使用外部库,比如<a href="http://modernizr.com">Modernizr</a>的,而不是依赖于<code>jQuery.support</code>上的属性。</p>
|
||
<p>在这些测试包括<code>jQuery.support</code>如下:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<code>ajax</code> 如果浏览器能创建 <code>XMLHttpRequest</code> 对象,则返回 true。
|
||
</li>
|
||
<li>
|
||
<code>boxModel</code> 如果页面是根据 <a href="http://www.w3.org/TR/REC-CSS2/box.html">W3C CSS Box Model</a> (当 IE 6 和 7 工作在 Quirks 模式下,该属性值是 false) 进行描绘的,则返回 true。在文档 ready 发生之前,该属性值一直是 null。
|
||
</li>
|
||
<li>
|
||
<code>changeBubbles</code> 如果 change 事件满足 <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents">W3C DOM event model</a> 的要求,在 DOM 树中向上冒泡时,则返回 true。(目前 IE 会返回 false,因为冒泡行为是 jQuery 模拟的。)
|
||
</li>
|
||
<li>
|
||
<code>checkClone</code> 如果浏览器正确克隆了文档片断中的复选框或单选按键的状态,则返回 true。
|
||
</li>
|
||
<li>
|
||
<code>checkOn</code> 当复选框在没有赋值的情况下,其默认值是 "on",则返回 true。
|
||
</li>
|
||
<li>
|
||
<code>cors</code> 如果浏览器能创建 <code>XMLHttpRequest</code> 对象,并且该 <code>XMLHttpRequest</code> 对象含有 <code>withCredentials</code> 属性的话,则返回 true。在尚不支持 cors 属性,但是允许跨域 <abbr title="XMLHttpRequest">XHR</abbr> 请求(例如 windows gadget, 等)的环境下,要启用跨域请求,请进行如下设置 <code>$.support.cors = true;</code>。
|
||
<a href="http://www.w3.org/TR/cors/">CORS WD</a>
|
||
</li>
|
||
<li>
|
||
<code>cssFloat</code> 如果属性值含有的 CSS float 值是 .cssFloat 的话,则返回 true。其中, .cssFloat 是在 <a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties-cssFloat">CSS Spec</a> 中定义的。(目前在 IE 中,该属性的返回值是 false,因为 IE 使用了 styleFloat 来代替该属性)。
|
||
</li>
|
||
<li>
|
||
<code>hrefNormalized</code> 如果 <code>.getAttribute()</code> 方法返回的 <code>href</code> 属性值没有发生变化,并不是标准化成完整的 URL 的话,则返回 true。(目前在 IE 中会返回 false,因为 IE 会将 URL 标准化。)
|
||
|
||
<div>
|
||
<a href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-666EE0F9">DOM l3 spec</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>htmlSerialize</code> 如果浏览器能够使用元素的 <code>.innerHTML</code> 属性来序列化/插入 <code><link></code> 元素的话,则返回 true。(目前在 IE 中会返回 false)。
|
||
<div>
|
||
<a href="http://www.w3.org/TR/2008/WD-html5-20080610/serializing.html#html-fragment">HTML5 WD</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>leadingWhitespace</code> 如果使用 .innerHTML 进行内容插入时,插入后的结果和所提供的内容完全一致,并且保留开头的空白字符,则返回 true。(在 IE 6-8 中返回 false)。
|
||
<div>
|
||
<a href="http://www.w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0">HTML5 WD</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>noCloneChecked</code> 如果克隆后的 DOM 元素保持了 <code>.checked</code> expando 状态,则返回 true。 (目前在 IE 中会返回 false)。 (在 jQuery 1.5.1 中追加的该属性)
|
||
</li>
|
||
<li>
|
||
<code>noCloneEvent</code> 如果克隆后的 DOM 元素上并没有被克隆元素上的事件(也就是说,源元素不是被克隆的。),则返回 true。(目前在 IE 中会返回 false)。
|
||
<div>
|
||
<a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Registration-interfaces-h3">DOM l2 spec</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>opacity</code> 如果浏览器能正确的处理透明度属性,则返回 true。(目前在 IE 中会返回 false,因为 IE 使用了 alpha 滤镜来代替该属性)。
|
||
<div>
|
||
<a href="http://www.w3.org/TR/css3-color/#transparency">CSS3 spec</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>optDisabled</code> 如果含有被禁用的 option 元素的 select 元素没有被自动禁用的话,则返回 true。
|
||
<div>
|
||
<a href="http://dev.w3.org/html5/spec/the-button-element.html#attr-option-disabled">HTML5 WD</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>optSelected</code> 如果被默认选中的 <code><option></code> 元素是通过 <code>selected</code> 属性被选中的,则返回 true。
|
||
<div>
|
||
<a href="http://dev.w3.org/html5/spec/the-button-element.html#attr-option-selected">HTML5 WD</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>scriptEval()</code> 如果通过标准的 DOM 操作方法,例如,<code>.appendChild()</code> 和 <code>.createTextNode()</code>,向文档中插入内嵌脚本时,如果脚本被自动计算并执行了,则返回 true。(目前在 IE 中会返回 false,因为 IE 使用 <code>.text</code> 来插入可执行的脚本)。
|
||
|
||
<div>
|
||
<strong>注意: 该属性在 jQuery 1.6 中已经被移除。</strong>在 jQuery 1.5.1 之前,<code>scriptEval()</code> 方法还是一个静态的 <code>scriptEval</code> 属性。将静态属性改成方法,允许测试被推迟到第一次使用时进行,是为了防止违反内嵌脚本的内容安全策略。
|
||
</div>
|
||
<div>
|
||
<a href="http://www.w3.org/TR/2008/WD-html5-20080610/tabular.html#script">HTML5 WD</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>style</code> 如果可以通过 DOM 属性访问元素的 inline 样式,以满足 DOM Level 2 规约,则返回 true。在这种情况下,使用 <code>.getAttribute('style')</code> 能够返回 style 的值。在 Internet Explorer 中,则要使用 <code>.cssText</code> 来达到相同的目的。
|
||
<div>
|
||
<a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-ElementCSSInlineStyle">DOM l2 Style spec</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<code>submitBubbles</code> submit 事件根据 <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents">W3C DOM event model</a> 的规定,能够在 DOM 树中向上冒泡,则返回 true。(目前在 IE 中会返回 false,因为冒泡行为是 jQuery 模拟的)。
|
||
</li>
|
||
<li>
|
||
<code>tbody</code> 如果允许一个空的 <code><table></code> 元素在没有 <code><tbody></code> 元素的情况下存在,则返回 true。根据 HTML 规范,<code><table></code> 的子元素是可选的,因此,在完全符合规范的浏览器中,该属性的值应该是 true。如果返回了 false,则我们必须要考虑浏览器隐式注入 <code><tbody></code> 标签的可能性。(目前在 IE 中会返回 false,因为如果通过 <code>innerHTML</code> 进行赋值的字符串中不存在 <code>tbody</code> 的话,则 IE 会自动插入 <code>tbody</code>)。
|
||
<div>
|
||
<a href="http://dev.w3.org/html5/spec/Overview.html#the-table-element">HTML5 spec</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<section class="entry-examples" id="entry-examples"><header><h2 class="underline">例子:</h2></header><div class="entry-example" id="example-0">
|
||
<h4>Example: <span class="desc"> 返回 iframe 的盒子模型。</span>
|
||
</h4>
|
||
<div class="syntaxhighlighter xml ">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
<div class="line n4">4</div>
|
||
<div class="line n5">5</div>
|
||
<div class="line n6">6</div>
|
||
<div class="line n7">7</div>
|
||
<div class="line n8">8</div>
|
||
<div class="line n9">9</div>
|
||
<div class="line n10">10</div>
|
||
<div class="line n11">11</div>
|
||
<div class="line n12">12</div>
|
||
<div class="line n13">13</div>
|
||
<div class="line n14">14</div>
|
||
<div class="line n15">15</div>
|
||
<div class="line n16">16</div>
|
||
<div class="line n17">17</div>
|
||
<div class="line n18">18</div>
|
||
<div class="line n19">19</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code><span class="doctype"><!DOCTYPE html></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">html</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">head</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">style</span>></span><span class="css"></span></code></div></div><div class="container"><div class="line"><code> <span class="tag">p</span> <span class="rules">{ <span class="rule"><span class="attribute">color</span>:<span class="value">blue;</span></span> <span class="rule"><span class="attribute">margin</span>:<span class="value"><span class="number">20</span>px;</span></span> <span class="rule">}</span></span></code></div></div><div class="container"><div class="line"><code> <span class="tag">span</span> <span class="rules">{ <span class="rule"><span class="attribute">color</span>:<span class="value">red;</span></span> <span class="rule">}</span></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"></<span class="title">style</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://code.jquery.com/jquery-latest.js"</span>></span><span class="javascript"></span><span class="tag"></<span class="title">script</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">head</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">body</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">p</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"></<span class="title">p</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">script</span>></span><span class="javascript"></span></code></div></div><div class="container"><div class="line"><code>$(<span class="string">"p"</span>).html(<span class="string">"This frame uses the W3C box model: <span>"</span> +</code></div></div><div class="container"><div class="line"><code> jQuery.support.boxModel + <span class="string">"</span>"</span>);</code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">script</span>></span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">body</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">html</span>></span></code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<h4>Demo:</h4>
|
||
<div class="demo code-demo"></div>
|
||
</div>
|
||
<div class="entry-example" id="example-1">
|
||
<h4>Example: <span class="desc">在 Internet Explorer 中,访问的页面处于 QuirksMode,则返回 false。</span>
|
||
</h4>
|
||
<div class="syntaxhighlighter javascript ">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code>jQuery.support.boxModel</code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<h4>Result:</h4>
|
||
<div class="syntaxhighlighter javascript nogutter">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code><span class="literal">false</span></code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div></section>
|
||
</div></article> </div>
|
||
</article> |