]> source.dussan.org Git - jquery.git/commitdiff
Offset: don't run scrollTop/scrollLeft iframe test in mobile Safari
authorOleg Gaidarenko <markelog@gmail.com>
Thu, 25 Dec 2014 01:49:56 +0000 (04:49 +0300)
committerOleg Gaidarenko <markelog@gmail.com>
Thu, 25 Dec 2014 01:49:56 +0000 (04:49 +0300)
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 62a333e0646d3011377ed13a6fcfbb08e91e2bef

test/unit/offset.js

index 7771df17e6c5ab54056c5554ccab7115b2e891ba..ab81a703d1cc07e4af6054237dbe8783ac3ac0f0 100644 (file)
@@ -534,16 +534,25 @@ test("fractions (see #7730 and #7885)", function() {
 test("iframe scrollTop/Left (see gh-1945)", function() {
        expect( 2 );
 
-       // Tests scrollTop/Left with iframes
        var ifDoc = jQuery( "#iframe" )[ 0 ].contentDocument;
-       jQuery( "#iframe" ).css( "width", "50px" ).css( "height", "50px" );
-       ifDoc.write( "<div style='width: 1000px; height: 1000px;'></div>" );
 
-       jQuery( ifDoc ).scrollTop( 200 );
-       jQuery( ifDoc ).scrollLeft( 500 );
+       // 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" );
 
-       equal( jQuery( ifDoc ).scrollTop(), 200, "$($('#iframe')[0].contentDocument).scrollTop()" );
-       equal( jQuery( ifDoc ).scrollLeft(), 500, "$($('#iframe')[0].contentDocument).scrollLeft()" );
+       } else {
+               // Tests scrollTop/Left with iframes
+               jQuery( "#iframe" ).css( "width", "50px" ).css( "height", "50px" );
+               ifDoc.write( "<div style='width: 1000px; height: 1000px;'></div>" );
+
+               jQuery( ifDoc ).scrollTop( 200 );
+               jQuery( ifDoc ).scrollLeft( 500 );
+
+               equal( jQuery( ifDoc ).scrollTop(), 200, "$($('#iframe')[0].contentDocument).scrollTop()" );
+               equal( jQuery( ifDoc ).scrollLeft(), 500, "$($('#iframe')[0].contentDocument).scrollLeft()" );
+       }
 });
 
 })();