jQuery.support
jQuery.support 返回: Object
描述: 一組屬性,它們代表了不同的瀏覽器功能或缺陷的存在的集合。
version added: 1.3jQuery.support
這是一個(gè)很好的做法,執(zhí)行功能檢測(cè) ,
而不是使用$.browser來(lái)檢測(cè)在當(dāng)前用戶代理(user agent)和改變頁(yè)面顯示在此基礎(chǔ)上運(yùn)行的瀏覽器。這意味著,前執(zhí)行的代碼依賴瀏覽器功能,我們測(cè)試,以確保功能正常運(yùn)作。為了使這個(gè)過(guò)程更簡(jiǎn)單,jQuery的執(zhí)行,使許多這樣的測(cè)試結(jié)果為屬性提供了我們作為jQuery.support對(duì)象。
所有這些支持的屬性值都通過(guò)特性檢測(cè)(和不使用任何瀏覽器的形式)。
以下是解釋如何使用少的資源特征檢測(cè)工作:
雖然jQuery包含了一些屬性,開發(fā)者可以隨意添加自己的需要決定的。許多jQuery.support性能相當(dāng)?shù)?,所以他們?duì)插件和jQyery核心和非常有用,而不是一般日常的日常開發(fā)。由于這些測(cè)試需要jQuery的內(nèi)部,他們必須在每一頁(yè)上都進(jìn)行加載;出于這個(gè)原因這個(gè)列表也很簡(jiǎn)短,僅限于由jQuery本身所需的功能。
在這些測(cè)試包括jQuery.support如下:
-
ajax等于為true,如果瀏覽器能夠創(chuàng)建一個(gè)XMLHttpRequest對(duì)象。 -
boxModel:等于為true。如果頁(yè)面是根據(jù)W3C的CSS盒模型渲染 (IE 6和7的怪異模式下為false).直到文件準(zhǔn)備就緒,此屬性為空。 -
changeBubbles:等于為true。如果改變事件向上冒泡的DOM樹,根據(jù)所要求的 W3C的DOM事件模型 。 (目前在IE返回false和jQuery模擬氣泡)。 -
checkClone等于為true,如果在瀏覽器正確地克隆單選按鈕或復(fù)選框的選中狀態(tài)文檔片段。 -
checkOn等于為true,如果CheckBox的值默認(rèn)為“on”時(shí)未指定任何值。 -
cors等于為true,如果瀏覽器可以創(chuàng)建一個(gè)XMLHttpRequest對(duì)象,如果該XMLHttpRequest對(duì)象有一個(gè)withCredentials屬性。要啟用跨域請(qǐng)求的環(huán)境中不支持cors yet但尚未允許跨域 XHR請(qǐng)求 (Windows小工具等),設(shè)置$.support.cors = true;。 CORS WD -
cssFloat:等于為true。如果該屬性名稱包含CSS float的值是.cssFloat,定義在CSS的規(guī)格 。(這是目前在IE中返回false,它使用styleFloat代替)。 -
hrefNormalized:等于為true。如果.getAttribute()方法檢索href元素合格的URL屬性不變,而不是歸到一個(gè)完全合格的URL。(目前在IE中返回false,URL的規(guī)范化 )。 -
htmlSerialize: 等于為true。如果瀏覽器能夠序列化/插入元素使用.innerHTML元素屬性。(目前在IE中會(huì)返回false)。 -
leadingWhitespace:等于為true。如果瀏覽器插入與內(nèi)容完全按照所提供的.innerHTML,具體地說(shuō), 特別是,如果前面的空白字符將被保留。(目前在IE 6-8中會(huì)返回false) -
noCloneChecked等于為true,如果克隆的DOM元素的復(fù)制的狀態(tài).checked的expando。(這在IE中會(huì)返回false)。 (在jQuery 1.5.1新增) -
noCloneEvent: 等于為true,如果克隆的DOM元素的事件處理程序是沒有創(chuàng)建(即,如果在源元素的事件處理程序不克?。?(這是在IE中會(huì)返回false)。 -
opacity: 等于為true,如果瀏覽器能正確地解釋透明度的樣式屬性。 (目前在IE中返回false,因?yàn)樗胊lpha濾鏡代替)。 -
optDisabled等于為true,如果在禁用選項(xiàng)元素選擇元素不會(huì)自動(dòng)標(biāo)記為禁用。 -
optSelected等于true,如果一個(gè)<option>元素,默認(rèn)選擇的有一個(gè)工作中的selected屬性。 -
style: 等于true,如果一個(gè)元素的內(nèi)聯(lián)樣式都可以通過(guò)DOM訪問屬性訪問style,通過(guò)DOM級(jí)別2規(guī)范的要求。在這種情況下,.getAttribute('style')可以檢索該值,在IE瀏覽器,.cssText是用于此目的。 -
submitBubbles: 等于為true,如果該事件提交了所需的冒泡作為DOM樹, W3C的DOM事件模型 。(目前在IE返回false和jQuery模擬氣泡)。 -
tbody: 等于true,如果一個(gè)空<table>元素可以存在沒有<tbody>元素。根據(jù)HTML規(guī)范,這個(gè)子元素是可選的,因此,屬性應(yīng)該是真實(shí)的完全兼容的瀏覽器。如果false,我們必須考慮的瀏覽器中注入<tbody>標(biāo)簽的可能性。目前在IE返回false,它會(huì)自動(dòng)tbody如果它不是在目前的字符串分配innerHTML)。
scriptEval: 等于true,如果內(nèi)嵌腳本執(zhí)行時(shí)自動(dòng)計(jì)算并插入到文檔中使用標(biāo)準(zhǔn)的DOM操作方法一樣,想這樣的appendChild()和createTextNode()。(目前在IE中返回false,它使用.text插入可執(zhí)行的腳本)。
注:在此之前到j(luò)Query 1.5.1,
scriptEval()方法是靜態(tài)的scriptEval屬性。到一個(gè)方法的改變?cè)试S測(cè)試,直至第一次使用,以防止內(nèi)容安全政策內(nèi)嵌腳本侵犯推遲。
Examples:
Example: Returns the box model for the iframe.
<!DOCTYPE html>
<html>
<head>
<style>
p { color:blue; margin:20px; }
span { color:red; }
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<p>
</p>
<script>
$("p").html("This frame uses the W3C box model: <span>" +
jQuery.support.boxModel + "</span>");
</script>
</body>
</html>
Demo:
Example: Returns false if the page is in QuirksMode in Internet Explorer
jQuery.support.boxModel
Result:
false