X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=inline;f=src%2Fsupport.js;h=f9429f956dedd8146b057cf36e81dc948d25cb35;hb=86ace44fbbdfe90d231877d6d3bb3b85a81782b4;hp=3e99772785de49f38867211a965ddf3b72de0efb;hpb=a00e63ea5a2c26f8e6384b5d1e2247be44c727e9;p=jquery.git diff --git a/src/support.js b/src/support.js index 3e99772..f9429f9 100644 --- a/src/support.js +++ b/src/support.js @@ -56,7 +56,11 @@ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected, + parentNode: div.removeChild( div.appendChild( document.createElement("div") ) ).parentNode === null, + // Will be defined later + deleteExpando: true, + checkClone: false, scriptEval: false, noCloneEvent: true, boxModel: null @@ -65,7 +69,7 @@ script.type = "text/javascript"; try { script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); - } catch(e) {} + } catch( scriptError ) {} root.insertBefore( script, root.firstChild ); @@ -77,6 +81,15 @@ delete window[ id ]; } + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete script.test; + + } catch( expandoError ) { + jQuery.support.deleteExpando = false; + } + root.removeChild( script ); if ( div.attachEvent && div.fireEvent ) { @@ -89,9 +102,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"; @@ -99,6 +120,7 @@ document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; document.body.removeChild( div ).style.display = 'none'; + div = null; });