X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fsupport.js;h=d35dbed2d847cbed0d346dd35d20dd9642124b32;hb=0be7f4eb4f027dce00f11d7816290022d447d336;hp=97672982878d65fae60c2c5ad0ecfd5cc30617f2;hpb=1e64d581830f735999b60939eccf9bcdcb2e9ef9;p=jquery.git diff --git a/src/support.js b/src/support.js index 9767298..d35dbed 100644 --- a/src/support.js +++ b/src/support.js @@ -1,3 +1,5 @@ +(function( jQuery ) { + (function() { jQuery.support = {}; @@ -5,13 +7,15 @@ var root = document.documentElement, script = document.createElement("script"), div = document.createElement("div"), - id = "script" + now(); + id = "script" + jQuery.now(); div.style.display = "none"; - div.innerHTML = "
a"; + div.innerHTML = "
a"; var all = div.getElementsByTagName("*"), - a = div.getElementsByTagName("a")[0]; + a = div.getElementsByTagName("a")[0], + select = document.createElement("select"), + opt = select.appendChild( document.createElement("option") ); // Can't get basic test support if ( !all || !all.length || !a ) { @@ -52,12 +56,23 @@ // (WebKit defaults to "" instead) checkOn: div.getElementsByTagName("input")[0].value === "on", + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + // Will be defined later + optDisabled: false, + checkClone: false, scriptEval: false, noCloneEvent: true, boxModel: null }; + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as diabled) + select.disabled = true; + jQuery.support.optDisabled = !opt.disabled; + script.type = "text/javascript"; try { script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); @@ -85,9 +100,17 @@ div.cloneNode(true).fireEvent("onclick"); } + div = document.createElement("div"); + div.innerHTML = ""; + + var fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + // Figure out if the W3C box model works as expected // document.body must exist before we can do this - // TODO: This timeout is temporary until I move ready into core.js. jQuery(function() { var div = document.createElement("div"); div.style.width = div.style.paddingLeft = "1px"; @@ -133,3 +156,5 @@ jQuery.props = { usemap: "useMap", frameborder: "frameBorder" }; + +})( jQuery );