Всем доброго времени суток!
Кто-нибудь может объяснить в чём тут подвох?
(function() {
var frame = document.createElement('iframe');
var write = function(content) {
frame.contentWindow.postMessage(content, '*');
};
frame.onload = function() {
write('<div>Line 1</div>');
write('<div>Line 2</div>');
};
frame.src = 'data:text/html,' + encodeURIComponent(`
<script>
window.addEventListener('message', function(event) {
console.log(event.data);
document.write(event.data);
});
<\/script>
`);
document.addEventListener('DOMContentLoaded', function() {
document.body.appendChild(frame);
});
})();
После document.write внутри iframe - полностью теряется связь с ним. Как с этим бороться?
На примере видим, что после первого "write", второй - совсем перестаёт работать, даже onmessage не срабатывает.