reconfiguring no longer unloads iframes on current slide

edit
Hakim El Hattab 2017-11-09 11:40:25 +01:00
parent 376d140b2a
commit 3d1d7683b2
1 changed files with 18 additions and 9 deletions

View File

@ -1274,6 +1274,8 @@
a[ i ] = b[ i ]; a[ i ] = b[ i ];
} }
return a;
} }
/** /**
@ -2509,7 +2511,7 @@
// Start or stop embedded content depending on global config // Start or stop embedded content depending on global config
if( config.autoPlayMedia === false ) { if( config.autoPlayMedia === false ) {
stopEmbeddedContent( currentSlide ); stopEmbeddedContent( currentSlide, { unloadIframes: false } );
} }
else { else {
startEmbeddedContent( currentSlide ); startEmbeddedContent( currentSlide );
@ -3535,7 +3537,12 @@
* *
* @param {HTMLElement} element * @param {HTMLElement} element
*/ */
function stopEmbeddedContent( element ) { function stopEmbeddedContent( element, options ) {
options = extend( {
// Defaults
unloadIframes: true
}, options || {} );
if( element && element.parentNode ) { if( element && element.parentNode ) {
// HTML5 media elements // HTML5 media elements
@ -3566,13 +3573,15 @@
} }
}); });
// Lazy loading iframes if( options.unloadIframes === true ) {
toArray( element.querySelectorAll( 'iframe[data-src]' ) ).forEach( function( el ) { // Unload lazy-loaded iframes
// Only removing the src doesn't actually unload the frame toArray( element.querySelectorAll( 'iframe[data-src]' ) ).forEach( function( el ) {
// in all browsers (Firefox) so we set it to blank first // Only removing the src doesn't actually unload the frame
el.setAttribute( 'src', 'about:blank' ); // in all browsers (Firefox) so we set it to blank first
el.removeAttribute( 'src' ); el.setAttribute( 'src', 'about:blank' );
} ); el.removeAttribute( 'src' );
} );
}
} }
} }