in ArticleTemplates/assets/js/bootstraps/atoms.js [103:124]
function initInteractives() {
const iframes = [...document.querySelectorAll('figure[data-atom-type="interactive"] > iframe')].flatMap(element => element instanceof HTMLIFrameElement ? [element] : []);
window.addEventListener('message', function (event) {
var iframe = iframes.find(function({ name }) { return name === event.source.name; });
if (!iframe) return;
try {
const message = JSON.parse(event.data);
switch (message.kind) {
case 'interactive:height':
iframe.height = message.height;
break;
case 'interactive:scroll':
window.addEventListener('scroll', scrollListener)
iframe.classList.add('scrolly');
break;
default:
}
} catch (e) {
// do nothing
}
});
}