Итак, вот как я загрузил «фрейм» без блокировки 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 заблокированы, поэтому я считаю, что это единственный способ создать фрейм внутри веб-страницы. Я не могу получить доступ к родителю из фрейма.
Спасибо.