Jquery роздрукувати div

Jquery роздрукувати div

Вітання. Сьогодні постараємося вирішити задачу, яка постає перед усіма, хто намагається щось роздрукувати на сайті, а саме jquery роздрукувати div.

Jquery роздрукувати div

Завдання: jquery роздрукувати div

Рішення: jquery роздрукувати div

Спочатку потрібно вибрати потрібний div за допомогою jQuery і записати в змінну його вміст (адже саме вміст ми будемо потім друкувати):

Готово. Тепер давайте задумаємося, як можна в принципі роздрукувати що-небудь на JS? Саме просто рішення (без застосування будь-яких там PDF) - скористатися функцією print. Але ця функція є тільки у об'єкта window, отже нам потрібно створити в тлі цей елемент і у нього вже викликати функцію print.

Отже, створимо iframe (він буде контейнером нашого нового window):

Ну а тепер отримаємо об'єкти document і window новоствореного iFrame:

Об'єкт document (в змінної doc) нам потрібен для того, щоб вивести в нього дані для друку, а window (в змінної win) - для того, щоб викликати саму печатку.
Тепер виведемо в iframe дані для друку (можна, до речі, додати туди ще й стиль спеціальний для друку, див. На jsFiddle в кінці статті).

І викличемо друк:

Готово. Діалог друку відкривається, при цьому ми виводимо на друк тільки вміст певного div (jQuery роздрукувати div), і не виводимо користувачеві зайвих спливаючих вікон.

Прикрашаємо отримані результати: jQuery роздрукувати div

Що можна зробити для поліпшення того, що у нас вийшло?
1) Давайте приберемо створений iFrame, щоб не збільшувати вагу сторінки в оперативці (і раптом людина ще раз натисне на кнопку «друк»):

2) Давайте додамо до друкується вмісту ще й таблицю стилів на CSS:
Спочатку зазначимо в змінної стилі (або можна прямо вказати link на зовнішній CSS файл):

Зверніть увагу, на фішку з media = print. Це означає, що стилі виконуватися тільки на принтері (це більше фішка, в нашому випадку, ніж реальний плюс).
Далі за кодом: кожен парний tr буде сірого кольору. Можна вказати більше стилів, або зовнішній файл CSS.
І додамо цю змінну до даних, які засовуємо в друкований iframe. Для цього трохи змінимо значення в описаній вище змінної html_to_print:

Звичайно, ваша реалізація jquery роздрукувати div може бути інший, сподіваюся, що ідею реалізації вдалося передати.

Подивитися на робочий демо описаного вище коду jquery роздрукувати div можна на jsFiddle. або трохи нижче:

Ну, а якщо у вас зламалася машина, або просто лінь їхати за кермом - служба таксі дешево москва допоможе вам доїхати до пункту призначення. Грамотно водії, якісний сервіс, не дорого.

  • Jquery роздрукувати div
    Як визначити на jquery select текст ...
  • Jquery роздрукувати div
    Робимо нескінченний слайдер jquery ...
  • Jquery роздрукувати div
    Плавне прокручування сторінки на ...

Схожі статті