#javascript #html #iframe
#javascript #HTML #iframe
Вопрос:
Я пытаюсь загрузить iFrame в мое приложение angular 5, используя следующий код, но по какой-то причине он не запускает iFrame, если я не выполняю print() при загрузке ()
let iframe = document.getElementById('print_iframe');
iframe = document.createElement('iframe');
iframe.setAttribute('id', 'print_iframe');
iframe.setAttribute('name', 'print_iframe');
iframe.setAttribute('width', '0');
iframe.setAttribute('height', '0');
iframe.setAttribute('frameBorder', 'no');
iframe.setAttribute('src', 'about:blank');
iframe.setAttribute('sandbox', 'allow-same-origin allow-modals');
document.body.appendChild(iframe);
iframe['contentWindow'].document.open();
iframe['contentWindow'].document.write(output);
iframe['contentWindow'].document.close();
Если я не добавлю этот код, он не запускает iFrame, что странно. Я также не вижу никаких консольных ошибок. Пожалуйста, помогите
iframe['contentWindow'].onload = iframe.onload = function () {
iframe['contentWindow'].print();
}
Комментарии:
1. Какое неожиданное поведение заставляет вас поверить, что iframe «не загружается»? Я не понимаю, потому что я могу сказать из описания, что элемент iframe DOM, очевидно, был загружен в основной фрейм DOM, и содержимое iframe также было загружено, потому
onload
что вызывается. Пожалуйста, будьте более конкретны в отношении ожидаемого поведения. Что именно вы подразумеваете под словом «загрузка».2. @hackape — спасибо, что пытались мне помочь. Я ожидаю увидеть, что всплывающее окно загружается через этот iFrame, но если я не использую print() в функции onload(), окно не запускается, но я не хочу ничего печатать и просто показываю всплывающее окно с переданным содержимым.
3. Что за «это всплывающее окно»? Все еще не понимаю, я не вижу всплывающего окна, упомянутого в вашем вопросе. Если вы не можете четко сформулировать свою проблему письменными словами, то предоставить минимальный воспроизводимый пример кода было бы проще, чтобы изложить свою точку зрения.
4. Я запускаю iframe как всплывающее окно и записываю свой результат в это окно.