aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/utils.js
diff options
context:
space:
mode:
authorSam Potts <sam@selz.com>2018-01-30 09:22:54 +1100
committerGitHub <noreply@github.com>2018-01-30 09:22:54 +1100
commitbb51647fe2f6e8e0eabb3099b58cc334e23936f0 (patch)
treef0ed45d84bc0304a543bafa08216355e63e55ac8 /src/js/utils.js
parent8f7a8940f36ab85c87a3406a378d383e58ee3d60 (diff)
parent71efbe7a927a9638204129ca7a2d52c498fa7e6e (diff)
downloadplyr-bb51647fe2f6e8e0eabb3099b58cc334e23936f0.tar.lz
plyr-bb51647fe2f6e8e0eabb3099b58cc334e23936f0.tar.xz
plyr-bb51647fe2f6e8e0eabb3099b58cc334e23936f0.zip
Merge pull request #772 from sampotts/fix/ads-blocked
Fix: ads blocked and media playing before ad plays
Diffstat (limited to 'src/js/utils.js')
-rw-r--r--src/js/utils.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/js/utils.js b/src/js/utils.js
index 155dc087..7c277301 100644
--- a/src/js/utils.js
+++ b/src/js/utils.js
@@ -82,7 +82,7 @@ const utils = {
},
// Load an external script
- loadScript(url, callback) {
+ loadScript(url, callback, error) {
const current = document.querySelector(`script[src="${url}"]`);
// Check script is not already referenced, if so wait for load
@@ -99,6 +99,10 @@ const utils = {
element.callbacks = element.callbacks || [];
element.callbacks.push(callback);
+ // Error queue
+ element.errors = element.errors || [];
+ element.errors.push(error);
+
// Bind callback
if (utils.is.function(callback)) {
element.addEventListener(
@@ -111,6 +115,16 @@ const utils = {
);
}
+ // Bind error handling
+ element.addEventListener(
+ 'error',
+ event => {
+ element.errors.forEach(err => err.call(null, event));
+ element.errors = null;
+ },
+ false,
+ );
+
// Set the URL after binding callback
element.src = url;