Задать вопрос
  • Как слать postmessage из iframe родителю?

    @vacslav-dev
    web-developer
    В iframe:
    parent.postMessage(JSON.stringify({key: 'value'}), 'http://адрес-родительского-окна');

    Вторым параметром в postMessage можно передать '*' - тогда сообщение будет доступно для всех окон.
    Сериализация в JSON первого параметра нужна для поддержки IE ниже не то 8 не то 9 версии, точно не вспомню.
    В родительском окне:
    function handlerMessage(e){
        var data = JSON.parse(e.data);
        var origin = e.origin;
        if(origin !== 'http://адрес_iframe'){
            return false;
        }
        // здесть можно использовать data как объект.
    }
    if(window.addEventListener){
        window.addEventListener('message', handlerMessage);
    } else {
        window.attachEvent('message', handlerMessage);
    }

    Код на 100% рабочий, с боевого проекта.
    Ответ написан
    Комментировать