Связь с родителем с помощью postMessage () в дочернем элементе, загруженном с помощью innerHTML-объекта - PullRequest
0 голосов
/ 12 июня 2019

Итак, вот как я загрузил «фрейм» без блокировки DOM:

document.getElementById("content").innerHTML="<object id='inner-content' type='text/html' data='views/changePassword.html'></object>";

Я пытаюсь перезагрузить родительское окно при нажатии кнопки в changePassword.html с помощью window.postMessage() Это не будет работать, потому что окно ограничено "рамкой" и не может вызвать eventListener в parent. Однако, если я использую window.parent.postMessage(), я блокирую DOM.

Итак, я попытался добавить eventListener к inner-content с кодом в родительском:

document.getElementById("inner-content").addEventListener("message", 
    function(e){
        if (e.data == "someMessage"){
            location.reload()
        }
    })

Функция никогда не срабатывает.

Я вижу, что iframes заблокированы, поэтому я считаю, что это единственный способ создать фрейм внутри веб-страницы. Я не могу получить доступ к родителю из фрейма.

Спасибо.

...