X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fsupport.js;h=ad8566d8bd047ab106d5f5d4b48bb3f9636c0f1f;hb=c90a1cb61b41a5686bc3764f144a156e734ed459;hp=04c3a2a69d6c16fc155f56d9ecbc9489b3699ff5;hpb=f8ef75eb9124ce924be5fb521c783efd5c996e33;p=jquery.git diff --git a/src/support.js b/src/support.js index 04c3a2a..ad8566d 100644 --- a/src/support.js +++ b/src/support.js @@ -5,10 +5,10 @@ var root = document.documentElement, script = document.createElement("script"), div = document.createElement("div"), - id = "script" + (new Date).getTime(); + id = "script" + now(); div.style.display = "none"; - div.innerHTML = '
a'; + div.innerHTML = '
a'; var all = div.getElementsByTagName("*"), a = div.getElementsByTagName("a")[0]; @@ -40,7 +40,7 @@ // Make sure that element opacity exists // (IE uses filter instead) - opacity: a.style.opacity === "0.5", + opacity: a.style.opacity === "0.55", // Verify style float existence // (IE uses styleFloat instead of cssFloat) @@ -88,7 +88,30 @@ document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; document.body.removeChild( div ).style.display = 'none'; + div = null; }); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + + // release memory in IE + root = script = div = all = a = null; })(); jQuery.props = { @@ -98,5 +121,8 @@ jQuery.props = { maxlength: "maxLength", cellspacing: "cellSpacing", rowspan: "rowSpan", - tabindex: "tabIndex" + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" };