diff options
author | John Resig <jeresig@gmail.com> | 2007-07-29 23:01:42 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-07-29 23:01:42 +0000 |
commit | 17949afc34d2fa7626bcc739b5008d32ee411660 (patch) | |
tree | 1f7f1b808970a398917483a886c40df64e0e0ec8 /src | |
parent | 3c82f8fb4aed7b4e65e1dd9ed79718a155a7a492 (diff) | |
download | jquery-17949afc34d2fa7626bcc739b5008d32ee411660.tar.gz jquery-17949afc34d2fa7626bcc739b5008d32ee411660.zip |
Got .css() working in Safari 2 as well (a number of shortcuts had to be removed, unfortunately). This should successfully close bug #1349.
Diffstat (limited to 'src')
-rw-r--r-- | src/jquery/jquery.js | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 8e8f7be78..705a5bb9c 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1457,8 +1457,16 @@ jQuery.extend({ }, curCSS: function(elem, prop, force) { - var ret, getComputedStyle = document.defaultView && - document.defaultView.getComputedStyle, stack = [], swap = []; + var ret, stack = [], swap = []; + + // A helper method for determining if an element's values are broken + function color(a){ + if ( !jQuery.browser.safari ) + return false; + + var ret = document.defaultView.getComputedStyle(a,null); + return !ret || ret.getPropertyValue("color") == ""; + } if (prop == "opacity" && jQuery.browser.msie) { ret = jQuery.attr(elem.style, "opacity"); @@ -1471,13 +1479,13 @@ jQuery.extend({ if (!force && elem.style[prop]) ret = elem.style[prop]; - else if (getComputedStyle) { + else if (document.defaultView && document.defaultView.getComputedStyle) { if (prop.match(/float/i)) prop = "float"; prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase(); - var cur = getComputedStyle(elem, null); + var cur = document.defaultView.getComputedStyle(elem, null); if ( cur && !color(elem) ) ret = cur.getPropertyValue(prop); @@ -1501,7 +1509,7 @@ jQuery.extend({ // one special, otherwise get the value ret = prop == "display" && swap[stack.length-1] != null ? "none" : - getComputedStyle(elem,null).getPropertyValue(prop) || ""; + document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop) || ""; // Finally, revert the display styles back for ( a = 0; a < swap.length; a++ ) @@ -1512,11 +1520,6 @@ jQuery.extend({ if ( prop == "opacity" && ret == "" ) ret = "1"; - // A helper method for determining if an element's values are broken - function color(a){ - return jQuery.browser.safari && getComputedStyle(a,null).getPropertyValue("color") == ""; - } - } else if (elem.currentStyle) { var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();}); ret = elem.currentStyle[prop] || elem.currentStyle[newProp]; |