diff options
author | Sam Potts <me@sampotts.me> | 2017-11-09 19:41:12 +1100 |
---|---|---|
committer | Sam Potts <me@sampotts.me> | 2017-11-09 19:41:12 +1100 |
commit | fd97607e5512ab8aef5321c628a521d61a95b9e8 (patch) | |
tree | 8369e9fec11cd23abfbee163b764404a1d08afdc | |
parent | f878581c8fe8c3e525722762553cf085e67d990f (diff) | |
parent | f9602acf611900d9f9ee27e62e3883fa9394bdee (diff) | |
download | plyr-fd97607e5512ab8aef5321c628a521d61a95b9e8.tar.lz plyr-fd97607e5512ab8aef5321c628a521d61a95b9e8.tar.xz plyr-fd97607e5512ab8aef5321c628a521d61a95b9e8.zip |
Merge branch 'develop' of https://github.com/Selz/plyr into develop
# Conflicts:
# dist/plyr.js
# dist/plyr.js.map
-rw-r--r-- | src/js/plugins/vimeo.js | 2 | ||||
-rw-r--r-- | src/js/utils.js | 19 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js index 8ae57dd9..4bca80e3 100644 --- a/src/js/plugins/vimeo.js +++ b/src/js/plugins/vimeo.js @@ -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]; diff --git a/src/js/utils.js b/src/js/utils.js index 1c78766f..84947e58 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -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 |