From: Timmy Willison Date: Wed, 6 Jan 2016 02:29:04 +0000 (-0500) Subject: CSS: fix reliableHiddenOffsets support test for IE6-7 X-Git-Tag: 1.12.0~18 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=77f9b1e8037b1e4dc12e64cf10240f4b97383c30;p=jquery.git CSS: fix reliableHiddenOffsets support test for IE6-7 --- diff --git a/src/css/support.js b/src/css/support.js index 6ff4cb19f..fbefc7b33 100644 --- a/src/css/support.js +++ b/src/css/support.js @@ -149,22 +149,27 @@ define( [ div.removeChild( contents ); } - // Support: IE8 + // Support: IE6-8 + // First check that getClientRects works as expected // Check if table cells still have offsetWidth/Height when they are set // to display:none and there are still other visible table cells in a // table row; if so, offsetWidth/Height are not reliable for use when // determining if an element has been hidden directly using // display:none (it is still safe to use offsets if a parent element is // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
t
"; - contents = div.getElementsByTagName( "td" ); - contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; - reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0 && - contents[ 0 ].getClientRects().length === 0; + div.style.display = "none"; + reliableHiddenOffsetsVal = div.getClientRects().length === 0; if ( reliableHiddenOffsetsVal ) { - contents[ 0 ].style.display = ""; - contents[ 1 ].style.display = "none"; + div.style.display = ""; + div.innerHTML = "
t
"; + contents = div.getElementsByTagName( "td" ); + contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none"; reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + if ( reliableHiddenOffsetsVal ) { + contents[ 0 ].style.display = ""; + contents[ 1 ].style.display = "none"; + reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0; + } } // Teardown diff --git a/test/unit/support.js b/test/unit/support.js index 41e45c59c..b75074e28 100644 --- a/test/unit/support.js +++ b/test/unit/support.js @@ -283,12 +283,12 @@ testIframeWithCallback( } else if ( /msie 7\.0/i.test( userAgent ) ) { expected = { "ajax": true, - "appendChecked": true, + "appendChecked": false, "attributes": false, - "boxSizing": true, + "boxSizing": false, "boxSizingReliable": false, "change": false, - "checkClone": true, + "checkClone": false, "checkOn": true, "clearCloneStyle": true, "cors": false, @@ -297,12 +297,12 @@ testIframeWithCallback( "deleteExpando": false, "enctype": true, "focusin": true, - "getSetAttribute": true, - "hrefNormalized": true, + "getSetAttribute": false, + "hrefNormalized": false, "html5Clone": false, "htmlSerialize": false, - "inlineBlockNeedsLayout": false, - "input": false, + "inlineBlockNeedsLayout": true, + "input": true, "leadingWhitespace": false, "noCloneChecked": false, "noCloneEvent": false, @@ -318,7 +318,7 @@ testIframeWithCallback( "reliableMarginLeft": false, "style": false, "submit": false, - "tbody": true + "tbody": false }; } else if ( /msie 6\.0/i.test( userAgent ) ) { expected = {