Callback for loadScript

This commit is contained in:
Sam Potts 2017-11-09 16:06:49 +11:00
parent 86a5724bdb
commit f9602acf61
4 changed files with 18 additions and 7 deletions

2
dist/plyr.js vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -25,6 +25,7 @@ const vimeo = {
// Load the API if not already
if (!utils.is.object(window.Vimeo)) {
utils.loadScript(this.config.urls.vimeo.api);
// Wait for load
const vimeoTimer = window.setInterval(() => {
if (utils.is.object(window.Vimeo)) {
@ -38,6 +39,7 @@ const vimeo = {
},
// Set aspect ratio
// For Vimeo we have an extra 300% height <div> to hide the standard controls and UI
setAspectRatio(input) {
const ratio = utils.is.string(input) ? input.split(':') : this.config.ratio.split(':');
const padding = 100 / ratio[0] * ratio[1];

View File

@ -76,17 +76,26 @@ const utils = {
},
// Load an external script
loadScript(url) {
loadScript(url, callback) {
// Check script is not already referenced
if (document.querySelectorAll(`script[src="${url}"]`).length) {
return;
}
const tag = document.createElement('script');
tag.src = url;
// Build the element
const element = document.createElement('script');
element.src = url;
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Find first script
const first = document.getElementsByTagName('script')[0];
// Bind callback
if (utils.is.function(callback)) {
element.addEventListener('load', event => callback.call(null, event), false);
}
// Inject
first.parentNode.insertBefore(element, first);
},
// Load an external SVG sprite