Commit fa0e801f authored by Mike Sherov's avatar Mike Sherov Committed by timmywil

Landing pull request 562. Make sure runtimeStyle isn't affected by dimensions. Fixes #9233.

More Details:
 - https://github.com/jquery/jquery/pull/562
 - http://bugs.jquery.com/ticket/9233
parent 5c0c8637
...@@ -285,9 +285,8 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) { ...@@ -285,9 +285,8 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {
if ( document.documentElement.currentStyle ) { if ( document.documentElement.currentStyle ) {
currentStyle = function( elem, name ) { currentStyle = function( elem, name ) {
var left, var left, rsLeft,
ret = elem.currentStyle && elem.currentStyle[ name ], ret = elem.currentStyle && elem.currentStyle[ name ],
rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
style = elem.style; style = elem.style;
if ( ret === null && style ) { if ( ret === null && style ) {
...@@ -300,8 +299,10 @@ if ( document.documentElement.currentStyle ) { ...@@ -300,8 +299,10 @@ if ( document.documentElement.currentStyle ) {
// If we're not dealing with a regular pixel number // 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 // but a number that has a weird ending, we need to convert it to pixels
if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
// Remember the original values // Remember the original values
left = style.left; left = style.left;
rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
// Put in the new values to get a computed value out // Put in the new values to get a computed value out
if ( rsLeft ) { if ( rsLeft ) {
......
...@@ -245,6 +245,29 @@ test("child of a hidden elem has accurate inner/outer/Width()/Height() see #944 ...@@ -245,6 +245,29 @@ test("child of a hidden elem has accurate inner/outer/Width()/Height() see #944
$divNormal.remove(); $divNormal.remove();
}); });
test("getting dimensions shouldnt modify runtimeStyle see #9233", function() {
expect( 1 );
var $div = jQuery( "<div>" ).appendTo( "#qunit-fixture" ),
div = $div.get( 0 ),
runtimeStyle = div.runtimeStyle;
if ( runtimeStyle ) {
div.runtimeStyle.marginLeft = "12em";
div.runtimeStyle.left = "11em";
}
$div.outerWidth( true );
if ( runtimeStyle ) {
equal( div.runtimeStyle.left, "11em", "getting dimensions modifies runtimeStyle, see #9233" );
} else {
ok( true, "this browser doesnt support runtimeStyle, see #9233" );
}
$div.remove();
});
test("outerHeight()", function() { test("outerHeight()", function() {
expect(11); expect(11);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment