Commit 62a333e0 authored by Oleg Gaidarenko's avatar Oleg Gaidarenko

Offset: fix iframe scrollTop/Left test for IE8 and iPhone

* IE8 need a doctype, otherwise IE will scroll it, but will
  still show old values. It wasn't noticable before, since IE8 will
  update values if in the dev tools you swtich to "Quirks mode"
  and then back again, then this tab will always show the correct values
  even if you update it

* iPhone resize the iframe by its content regardless of
  the width, height values, meaning it's not possible to scroll
  the iframe only its parent element

Ref ae30fb6c
parent d632699c
...@@ -550,10 +550,23 @@ test("fractions (see #7730 and #7885)", function() { ...@@ -550,10 +550,23 @@ test("fractions (see #7730 and #7885)", function() {
test("iframe scrollTop/Left (see gh-1945)", function() { test("iframe scrollTop/Left (see gh-1945)", function() {
expect( 2 ); expect( 2 );
// Tests scrollTop/Left with iframes
var ifDoc = jQuery( "#iframe" )[ 0 ].contentDocument; var ifDoc = jQuery( "#iframe" )[ 0 ].contentDocument;
// iPhone resize the iframe by its content
// meaning it's not possible to scroll the iframe only its parent element
if ( /iphone os/i.test( navigator.userAgent ) ) {
equal( true, true, "iPhone doesn't scroll the iframes" );
equal( true, true, "iPhone doesn't scroll the iframes" );
} else {
// Tests scrollTop/Left with iframes
jQuery( "#iframe" ).css( "width", "50px" ).css( "height", "50px" ); jQuery( "#iframe" ).css( "width", "50px" ).css( "height", "50px" );
ifDoc.write( "<div style='width: 1000px; height: 1000px;'></div>" );
// Support: IE8
// Need a doctype, otherwise IE will scroll it but will still show old values
ifDoc.write( "<!DOCTYPE><div style='width: 1000px; height: 1000px;'></div>" );
// Support: IE8
ifDoc.close(); ifDoc.close();
jQuery( ifDoc ).scrollTop( 200 ); jQuery( ifDoc ).scrollTop( 200 );
...@@ -561,6 +574,7 @@ test("iframe scrollTop/Left (see gh-1945)", function() { ...@@ -561,6 +574,7 @@ test("iframe scrollTop/Left (see gh-1945)", function() {
equal( jQuery( ifDoc ).scrollTop(), 200, "$($('#iframe')[0].contentDocument).scrollTop()" ); equal( jQuery( ifDoc ).scrollTop(), 200, "$($('#iframe')[0].contentDocument).scrollTop()" );
equal( jQuery( ifDoc ).scrollLeft(), 500, "$($('#iframe')[0].contentDocument).scrollLeft()" ); equal( jQuery( ifDoc ).scrollLeft(), 500, "$($('#iframe')[0].contentDocument).scrollLeft()" );
}
}); });
})(); })();
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