| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Вывод на печать. Javascript |
| Автор: ksnk 3.4.2013, 13:49 | ||||
| Требуется со страницы вывести на печать некую информацию. На странице выводится много картинок, на печать нужно вывести только одну с сопроводительным текстом, при нажатии на кнопку возле ее. В идеале, хочется получить минимум пользовательских телодвижений - нажал на кнопку печать, подтвердил желание в окне принтера и все. Стандарное решение - печать идет функцией window.print() и все ненужное со страницы убирается стилями с @media print К сожалению, воспользоваться этим способом не представляется возможным (во всяком случае, на первый взгляд). Сами кнопки формируется таким образом. В цикле перебираются имена банеров...
функция печати выглядит так
Как можно заметить, с основного текста выковыривается нужный стиль, нужный текст и нужный банер. Все это добро и предлагается печатать. #tmp - это скрытый фрейм, который для хрома позволяет не выводить окно. Все работает относительно прилично для Хрома - нового окна не выводится, печатается то что надо. Для нехрома выводится отдельное всплывающее окно. Если они разрешены - проблем нет, за исключением дополнительного клика по кнопке закрытия окна. Однако если они заблокированы (стандарт для IE) возникают досадные вопросы и нудные объяснения. Как еще можно решить задачу вывода на принтер? |
| Автор: Aliance 3.4.2013, 14:44 | ||
А #tmp это что? Зачем вообще разделять на хром и не хром. В 99% это же не правильно, проверять по браузеру (костыль). В интернете говорят, что Хром тупит с этой функцией и предлагают в качестве решения:
Что если вместо нового окна ( window.open ) генерировать ифрейм? |