Skip to content
Permalink
Browse files

Bug #7608 elem.runtimeStyle throws exception in Opera

  • Loading branch information...
rwaldron committed Jan 5, 2011
1 parent cbf5911 commit 8099cdce800d45109b961e3521fc0080e9a876c6
Showing with 30 additions and 4 deletions.
  1. +8 −4 src/css.js
  2. +22 −0 test/unit/css.js
@@ -263,8 +263,9 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {

if ( document.documentElement.currentStyle ) {
currentStyle = function( elem, name ) {
var left, rsLeft,
var left,
ret = elem.currentStyle && elem.currentStyle[ name ],
rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
style = elem.style;

// From the awesome hack by Dean Edwards
@@ -275,16 +276,19 @@ if ( document.documentElement.currentStyle ) {
if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
// Remember the original values
left = style.left;
rsLeft = elem.runtimeStyle.left;

// Put in the new values to get a computed value out
elem.runtimeStyle.left = elem.currentStyle.left;
if ( rsLeft ) {
elem.runtimeStyle.left = elem.currentStyle.left;
}
style.left = name === "fontSize" ? "1em" : (ret || 0);
ret = style.pixelLeft + "px";

// Revert the changed values
style.left = left;
elem.runtimeStyle.left = rsLeft;
if ( rsLeft ) {
elem.runtimeStyle.left = rsLeft;
}
}

return ret === "" ? "auto" : ret;
@@ -320,3 +320,25 @@ test(":visible selector works properly on children with a hidden parent (bug #45
jQuery('#table').css('display', 'none').html('<tr><td>cell</td><td>cell</td></tr>');
equals(jQuery('#table td:visible').length, 0, "hidden cell children not perceived as visible");
});

test("internal ref to elem.runtimeStyle (bug #7608)", function () {
expect(1);

var result = true,
val = 10;

jQuery('<div id="bug7608" style="width:200px;border:solid 1px red;">' +
'<div id="test" style="width:0%; background:#000;">&nbsp;</div></div>').appendTo("body");

try {
// the bug is located within src/css.js
jQuery("#bug7608 #test").animate( { width: val }, 1000);

} catch (e) {
result = false;
}

ok( result, "elem.runtimeStyle does not throw exception" );

jQuery("#bug7608").remove();
});

0 comments on commit 8099cdc

Please sign in to comment.
You can’t perform that action at this time.