wpView: consolidate pausePlayers() and unsetPlayers(), they are almost the same. Prevent errors when instead of a player ME.js shows only a "Download File" placeholder (in IE). See #28905.
Built from https://develop.svn.wordpress.org/trunk@29272 git-svn-id: http://core.svn.wordpress.org/trunk@29054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
270a57075c
commit
c40feac4d9
|
@ -504,15 +504,15 @@ window.wp = window.wp || {};
|
||||||
|
|
||||||
this.shortcode = options.shortcode;
|
this.shortcode = options.shortcode;
|
||||||
|
|
||||||
_.bindAll( this, 'setIframes', 'setNodes', 'fetch', 'pausePlayers' );
|
_.bindAll( this, 'setIframes', 'setNodes', 'fetch', 'stopPlayers' );
|
||||||
$( this ).on( 'ready', this.setNodes );
|
$( this ).on( 'ready', this.setNodes );
|
||||||
|
|
||||||
$( document ).on( 'media:edit', this.pausePlayers );
|
$( document ).on( 'media:edit', this.stopPlayers );
|
||||||
|
|
||||||
this.fetch();
|
this.fetch();
|
||||||
|
|
||||||
this.getEditors( function( editor ) {
|
this.getEditors( function( editor ) {
|
||||||
editor.on( 'hide', self.pausePlayers );
|
editor.on( 'hide', self.stopPlayers );
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -553,35 +553,30 @@ window.wp = window.wp || {};
|
||||||
} );
|
} );
|
||||||
},
|
},
|
||||||
|
|
||||||
pausePlayers: function() {
|
stopPlayers: function( remove ) {
|
||||||
|
var rem = remove === 'remove';
|
||||||
|
|
||||||
this.getNodes( function( editor, node, content ) {
|
this.getNodes( function( editor, node, content ) {
|
||||||
var p, win,
|
var p, win,
|
||||||
iframe = $( 'iframe.wpview-sandbox', content ).get(0);
|
iframe = $( 'iframe.wpview-sandbox', content ).get(0);
|
||||||
|
|
||||||
if ( iframe && ( win = iframe.contentWindow ) && win.mejs ) {
|
if ( iframe && ( win = iframe.contentWindow ) && win.mejs ) {
|
||||||
|
// Sometimes ME.js may show a "Download File" placeholder and player.remove() doesn't exist there.
|
||||||
|
try {
|
||||||
for ( p in win.mejs.players ) {
|
for ( p in win.mejs.players ) {
|
||||||
win.mejs.players[p].pause();
|
win.mejs.players[p].pause();
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
unsetPlayers: function() {
|
if ( rem ) {
|
||||||
this.getNodes( function( editor, node, content ) {
|
|
||||||
var p, win,
|
|
||||||
iframe = $( 'iframe.wpview-sandbox', content ).get(0);
|
|
||||||
|
|
||||||
if ( iframe && ( win = iframe.contentWindow ) && win.mejs ) {
|
|
||||||
for ( p in win.mejs.players ) {
|
|
||||||
win.mejs.players[p].remove();
|
win.mejs.players[p].remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch( er ) {}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
unbind: function() {
|
unbind: function() {
|
||||||
this.pausePlayers();
|
this.stopPlayers( 'remove' );
|
||||||
this.unsetPlayers();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue