2016-10-10 5 views
0

Проблема:печать только содержимое фрейма, когда пользователь выбирает Файл-> Печать

У меня есть приложение, которое загружает содержимое из других серверов в качестве . Пользователи хотят иметь возможность печатать содержимое в iframe, что иногда может быть довольно длинным и заставляет прокручивать iframe. При печати печатается только область, отображаемая в окне просмотра iframe. Остальное отрезано.

Что я пробовал:

Использование @media print стилей, я могу скрыть все остальные элементы на странице и разверните IFRAME на ширину и высоту 100%. То, что я не могу сделать AFAICT, изменяет его размер на w/h фактического содержимого (используя только CSS), поэтому, если 100% недостаточно, контент усекается.

Я знаю, что это разрешимо через javascript, но браузеры не всегда предлагают крючок событий для file-> print, поэтому я не могу запустить javascript, когда это необходимо.

Я мог бы создать пользовательскую кнопку «печать», чтобы JS мог работать, и iframe был бы правильно напечатан, но он не позволяет «Предварительный просмотр», поскольку браузеры не предлагают JS-метод для это.

Я в тупике здесь, есть ли ответ?

ответ

0

Если вы хотите, чтобы распечатать содержимое фрейма вы можете использовать

document.getElementById('ifr1').contentWindow.print() 

Это будет вызывать print() на содержимое фрейма (а не окна контейнера).

+0

Это не касается проблемы. Пользователи хотят использовать File-> print или print preview, и мне нужно иметь возможность подключиться к этому и отображать только содержимое iframe. –

+0

'File-> print' будет печатать окно« parent ». Если вы должны использовать это - единственный параметр, который у вас есть, - установить положение iframe в 0-0 (верхний левый угол), установить ширину iframe на ширину окна и установить высоту iframe на высоту его содержания. Это единственный способ, которым вы действительно можете распечатать/просмотреть окно, а фактическим «выводом» будет весь контент iframe. – Dekel

+0

Правильно, но для этого мне нужен способ запуска JS-функции, когда пользователь печатает или запрашивает предварительный просмотр печати. Кажется, что нет последовательного способа сделать это. –

Смежные вопросы