Вызов javascript в iframe с родительской страницы, проблема IE
Это следующий вопрос: Вызов javascript в iframe с родительской страницы
Я реализовал ответ, предоставленный @Tomalak.
Вот jsFiddle
Проблема заключается в том, что содержимое в iframe
динамически создается (поэтому проблем с перекрестными доменами нет). Внутри содержимого есть кнопка, чей обработчик события onclick
вызывает window.print()
. Это печатает только содержимое iframe
(что хорошо и служит доказательством концепции).
Кроме того, на родительской странице есть кнопка, которая вызывает публичную функцию, опубликованную iframe
. Функция printContent
, и как обработчик события iframe
onclick
, она также вызывает window.print()
.
Это проблема при печати с помощью кнопки на родительской странице с использованием IE 8, также печатает содержимое родительской страницы. (Это не происходит с Chrome.)
Есть ли исправление, которое заставляет IE 8 печатать только содержимое iframe
?
Интересно, что возвращая window.document.title
через публичную функцию, возвращает title
контента iframe
, даже при использовании IE 8.
Скрипка демонстрирует проблему и предлагает более подробную информацию.
Ответы
Ответ 1
В IE вам нужно установить фокус на окно, которое вы хотите распечатать. Это выводит iframe, когда функция находится на родительской странице:
function printContent(){
var el = document.getElementById('myFrame');
el.contentWindow.focus();
el.contentWindow.print();
return;
}
Если функция находится в iframe, вы можете ее распечатать из любого места:
function printContent(){
window.focus();
window.print();
return;
}