image-loading-lazy-below-viewport-dynamic.html (1756B)
1 <!DOCTYPE html> 2 <head> 3 <title>Below viewport images with loading='lazy' and changed to 4 loading='eager' load and do not block the window load event</title> 5 <link rel="author" title="Rob Buis" href="mailto:rbuis@igalia.com"> 6 <link rel="help" href="https://github.com/scott-little/lazyload"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 </head> 10 11 <script> 12 const t = async_test("Test that below viewport images with loading='lazy' " + 13 "and changed to loading='eager' load and do not block " + 14 "the window load event."); 15 16 let has_below_viewport_loaded = false; 17 let has_window_loaded = false; 18 19 window.addEventListener("load", t.step_func(function() { 20 assert_false(has_window_loaded, 21 "The window load event should only fire once."); 22 has_window_loaded = true; 23 })); 24 25 const below_viewport_img_onload = t.step_func_done(function() { 26 assert_false(has_below_viewport_loaded, 27 "The in_viewport element should load only once."); 28 assert_true(has_window_loaded, 29 "The window load event should have fired before " + 30 "below_viewport loaded."); 31 has_below_viewport_loaded = true; 32 }); 33 </script> 34 35 <body> 36 <div style="height:10000px;"></div> 37 <img id="below_viewport" src="resources/image.png?below-viewport-dynamic&pipe=trickle(d2)" 38 loading="lazy" onload="below_viewport_img_onload();"> 39 <script> 40 assert_false(has_window_loaded, 41 "The window load event should not fire before " + 42 "changing below_viewport to loading='eager'."); 43 document.getElementById("below_viewport").loading = 'eager'; 44 </script> 45 </body>