lazy loading fallback also considers iframes

edit
Hakim El Hattab 2015-05-04 20:22:32 -04:00
parent 80e52c08e9
commit 152271efb2
1 changed files with 12 additions and 8 deletions

View File

@ -238,14 +238,18 @@
if( !features.transforms2d && !features.transforms3d ) { if( !features.transforms2d && !features.transforms3d ) {
document.body.setAttribute( 'class', 'no-transforms' ); document.body.setAttribute( 'class', 'no-transforms' );
// Since JS won't be running any further, we need to load all // Since JS won't be running any further, we load all lazy
// images that were intended to lazy load now // loading elements upfront
var images = document.getElementsByTagName( 'img' ); var images = toArray( document.getElementsByTagName( 'img' ) ),
for( var i = 0, len = images.length; i < len; i++ ) { iframes = toArray( document.getElementsByTagName( 'iframe' ) );
var image = images[i];
if( image.getAttribute( 'data-src' ) ) { var lazyLoadable = images.concat( iframes );
image.setAttribute( 'src', image.getAttribute( 'data-src' ) );
image.removeAttribute( 'data-src' ); for( var i = 0, len = lazyLoadable.length; i < len; i++ ) {
var element = lazyLoadable[i];
if( element.getAttribute( 'data-src' ) ) {
element.setAttribute( 'src', element.getAttribute( 'data-src' ) );
element.removeAttribute( 'data-src' );
} }
} }