![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Требуется со страницы вывести на печать некую информацию. На странице выводится много картинок, на печать нужно вывести только одну с сопроводительным текстом, при нажатии на кнопку возле ее. В идеале, хочется получить минимум пользовательских телодвижений - нажал на кнопку печать, подтвердил желание в окне принтера и все.
Стандарное решение - печать идет функцией window.print() и все ненужное со страницы убирается стилями с @media print К сожалению, воспользоваться этим способом не представляется возможным (во всяком случае, на первый взгляд). Сами кнопки формируется таким образом. В цикле перебираются имена банеров...
функция печати выглядит так
Как можно заметить, с основного текста выковыривается нужный стиль, нужный текст и нужный банер. Все это добро и предлагается печатать. #tmp - это скрытый фрейм, который для хрома позволяет не выводить окно. Все работает относительно прилично для Хрома - нового окна не выводится, печатается то что надо. Для нехрома выводится отдельное всплывающее окно. Если они разрешены - проблем нет, за исключением дополнительного клика по кнопке закрытия окна. Однако если они заблокированы (стандарт для IE) возникают досадные вопросы и нудные объяснения. Как еще можно решить задачу вывода на принтер? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
А #tmp это что? Зачем вообще разделять на хром и не хром. В 99% это же не правильно, проверять по браузеру (костыль). В интернете говорят, что Хром тупит с этой функцией и предлагают в качестве решения:
Что если вместо нового окна ( window.open ) генерировать ифрейм? |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
#tmp = это скрытый фрейм
Штука в том, что таким образом в хроме - "правильно" работает. Зато в остальных - нет и приходится пользоваться всплывающими окнами, которые нужно потом отдельно закрывать. Отказываться от "правильно" работающей фичи в пользу универсального, но "неправильного" не считаю разумным ;) Дело в том, что в остальных броузерах (IE, FF, Opera) печатается не текст во фрейме, а весь текст страницы. А вот в хроме - то, что находится во фрейме. Сам код срабатывает везде, разница в реализации .print. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |