function initInteractives()

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
        }
    });
}