From: John Resig Date: Fri, 7 Sep 2007 21:39:44 +0000 (+0000) Subject: Fix for bug #760 (fontSize returns different values in IE). This was part of a larger... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=3abf3125cb737f120b6b86c6011fd7ce0e6ba7cc Fix for bug #760 (fontSize returns different values in IE). This was part of a larger issue where IE returned non-pixel values from it's computed style - this normalizes it (thanks to a fix by Dean Edwards). --- diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index d5a32e2..537b4e2 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -643,6 +643,21 @@ jQuery.extend({ } else if (elem.currentStyle) { var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();}); ret = elem.currentStyle[prop] || elem.currentStyle[newProp]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test(ret) && /^\d/.test(ret) ) { + var style = elem.style.left; + var runtimeStyle = elem.runtimeStyle.left; + elem.runtimeStyle.left = elem.currentStyle.left; + elem.style.left = ret || 0; + ret = elem.style.pixelLeft + "px"; + elem.style.left = style; + elem.runtimeStyle.left = runtimeStyle; + } } return ret;