Skip to content
This repository was archived by the owner on Nov 26, 2021. It is now read-only.

Commit

Permalink
Merge pull request #15 from Financial-Times/multiple-ad-script-loads
Browse files Browse the repository at this point in the history
Fix second load of ad library firing too early
  • Loading branch information
Alberto Elias authored Jul 27, 2016
2 parents f3c88a0 + 64be8a8 commit d498cd0
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 14 deletions.
1 change: 1 addition & 0 deletions main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ $_o-video_applied: false !default;

.o-video__play-button-text {
text-indent: -9999px;
display: block;
}

.o-video__play-button-icon {
Expand Down
37 changes: 23 additions & 14 deletions src/js/ads.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/* global google */

let sdkScriptLoaded = false;

function createVideoOverlayElement() {
const overlayEl = document.createElement('div');
overlayEl.classList.add('o-video__overlay');
Expand All @@ -20,23 +22,30 @@ class VideoAds {

loadAdsLibrary() {
return new Promise((resolve, reject) => {
if (document.querySelector('[src="//imasdk.googleapis.com/js/sdkloader/ima3.js"]')) {
resolve();
let googleSdkScript = document.querySelector('[src="//imasdk.googleapis.com/js/sdkloader/ima3.js"]');

if (!googleSdkScript) {
googleSdkScript = document.createElement('script');
googleSdkScript.setAttribute('type', 'text/javascript');
googleSdkScript.setAttribute('src', `//imasdk.googleapis.com/js/sdkloader/ima3.js`);
googleSdkScript.setAttribute('async', true);
googleSdkScript.setAttribute('defer', true);
document.getElementsByTagName("head")[0].appendChild(googleSdkScript);
}
const googleSdkScript = document.createElement('script');
googleSdkScript.setAttribute('type', 'text/javascript');
googleSdkScript.setAttribute('src', `//imasdk.googleapis.com/js/sdkloader/ima3.js`);
googleSdkScript.setAttribute('async', true);
googleSdkScript.setAttribute('defer', true);
document.getElementsByTagName("head")[0].appendChild(googleSdkScript);

googleSdkScript.addEventListener('load', () => {

if (sdkScriptLoaded) {
resolve();
});
} else {

googleSdkScript.addEventListener('load', () => {
sdkScriptLoaded = true;
resolve();
});

googleSdkScript.addEventListener('error', (e) => {
reject(e);
});
googleSdkScript.addEventListener('error', (e) => {
reject(e);
});
}
});
}

Expand Down

0 comments on commit d498cd0

Please sign in to comment.