Вызов 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;
}