aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/css.js5
-rw-r--r--test/unit/dimensions.js23
2 files changed, 26 insertions, 2 deletions
diff --git a/src/css.js b/src/css.js
index 0735fc3d8..ea1037ded 100644
--- a/src/css.js
+++ b/src/css.js
@@ -285,9 +285,8 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {
if ( document.documentElement.currentStyle ) {
currentStyle = function( elem, name ) {
- var left,
+ var left, rsLeft,
ret = elem.currentStyle && elem.currentStyle[ name ],
- rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
style = elem.style;
if ( ret === null && style ) {
@@ -300,8 +299,10 @@ if ( document.documentElement.currentStyle ) {
// 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 ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
+
// Remember the original values
left = style.left;
+ rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
// Put in the new values to get a computed value out
if ( rsLeft ) {
diff --git a/test/unit/dimensions.js b/test/unit/dimensions.js
index 768816803..3ccf651ba 100644
--- a/test/unit/dimensions.js
+++ b/test/unit/dimensions.js
@@ -245,6 +245,29 @@ test("child of a hidden elem has accurate inner/outer/Width()/Height() see #944
$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() {
expect(11);