src/js/iframe_embed/embedder.js
author ymh <ymh.work@gmail.com>
Tue, 22 Oct 2024 07:19:03 +0200
changeset 1078 c28fb800e252
parent 1072 ac1eacb3aa33
permissions -rw-r--r--
VideojsPlayer for Dailymotion in AutoPlayer

/* This piece of code is directly requested by the page the player is embedded
   on. It creates the iframe the player is embedded in and it reflects changes
   to the iframe url in the page url.   
*/

const iFrameUpdater = function(_frameId) {
    
    var _frame = document.getElementById(_frameId),
        _blocked = false,
        _updater = function() {
            _blocked = true;
            window.setTimeout(function() {
                _blocked = false;
            }, 1000);
            _frame.contentWindow.postMessage(document.location.hash, "*");
        };
    
    window.onhashchange = _updater;
    
    window.addEventListener('message', function(_e) {
        if (/^#/.test(_e.data) && !_blocked) {
            if (typeof window.history !== "undefined" && typeof window.history.replaceState !== "undefined") {
                window.history.replaceState({}, "", _e.data);
            } else {
                document.location.hash = _e.data;
            }
        }
    });
    
    window.setTimeout(_updater, 2000);
    
};

export default iFrameUpdater;