in ArticleTemplates/assets/js/modules/youtube.js [34:96]
function checkForVideos() {
const iframes = document.body.querySelectorAll('iframe.youtube-media');
const isPreviousElementSDKPlaceholder = element => {
const previousElementSibling = element.previousElementSibling;
return previousElementSibling && previousElementSibling.classList.contains('youtube-media__sdk-placeholder');
};
/**
if a youtube iframe doesn't have
the sdk placeholder (youtubeAtomPositionPlaceholder.html)
as it's preceeding sibling then it is to be initialised by JS
**/
videos = Array.prototype.filter.call(iframes, iframe => !isPreviousElementSDKPlaceholder(iframe));
/**
if a youtube iframe does have
the sdk placeholder (youtubeAtomPositionPlaceholder.html)
as it's preceeding sibling then we must report it's position to
the native layer
**/
sdkPlaceholders = sdkPlaceholders.concat(Array.prototype.map.call(iframes, iframe => {
if (isPreviousElementSDKPlaceholder(iframe)) {
const previousElementSibling = iframe.previousElementSibling;
iframe.remove();
return previousElementSibling;
}
}).filter(Boolean));
if (videos.length) {
if (!scriptReady) {
loadScript();
} else {
initialiseVideos();
}
}
if (sdkPlaceholders.length) {
buildAndSendSdkReport();
if (!sdkReportInitialised) {
window.addEventListener('resize', buildAndSendSdkReport);
sdkReportInitialised = true;
}
if (sdkPoller) {
clearInterval(sdkPoller);
}
sdkPoller = setInterval(() => {
if (sdkPollCount < sdkMaxPollCount) {
buildAndSendSdkReport();
sdkPollCount++;
} else {
clearInterval(sdkPoller);
}
}, 200);
}
}