JS властивість Event.beforeprint


Загальний опис

beforeprint — це подія, яка виникає у веб-браузері перед початком процесу друку сторінки або відкриттям вікна попереднього перегляду друку. Ця подія дозволяє веб-розробникам виконувати JavaScript-код безпосередньо перед друком, що може бути корисним для внесення змін до вмісту сторінки, які потрібні лише для друку. Наприклад, можна приховувати або показувати певні елементи, змінювати стилі або налаштовувати вміст таким чином, щоб забезпечити кращий друкований вигляд.

Для використання події beforeprint необхідно додати обробник подій до об'єкта window, який буде викликаний кожного разу перед початком друку. Це можна зробити за допомогою методу addEventListener(), який дозволяє визначити функцію, що виконується у відповідь на подію. Наприклад:

window.addEventListener('beforeprint', function(event) {
  console.log('Готуємо сторінку до друку.');
});

У цьому прикладі, коли користувач запускає процес друку, в консолі браузера з'являється повідомлення "Готуємо сторінку до друку."

Подія beforeprint може використовуватися для багатьох цілей. Наприклад, можна автоматично змінити стилі CSS, додати чи видалити елементи, або показати спеціальні повідомлення тільки для друкованої версії сторінки. Це особливо корисно для адаптації сторінки під специфічні потреби друку, такі як видалення зайвих кнопок, навігаційних панелей або інших інтерактивних елементів, які не потрібні на паперовій версії.

Однак важливо зазначити, що подія beforeprint підтримується не всіма браузерами однаково. Більшість сучасних браузерів, таких як Chrome, Firefox, та Safari, підтримують цю подію, але старіші версії можуть не мати цієї функціональності. Тому завжди слід перевіряти підтримку браузера перед використанням цієї події у ваших веб-додатках.

Подія beforeprint також може бути використана разом з подією afterprint, яка виникає після завершення друку або закриття вікна попереднього перегляду друку. Це дозволяє розробникам повертати сторінку до її початкового вигляду після друку, що забезпечує зручність користувача.

автор: Bond

Порада

Подія beforeprint корисна для налаштування вмісту сторінки перед друком. Наприклад, можна тимчасово змінити стилі або додати спеціальні повідомлення, які з'являться лише на друкованій версії. Це дозволяє користувачам отримати більш чистий і зрозумілий документ.

автор: Bond
Порада

Подія beforeprint може використовуватися для відправки аналітичних даних про те, що користувач друкує сторінку. Це може бути корисним для розуміння поведінки користувачів і вдосконалення інтерфейсу веб-додатка.

автор: Bond
Порада

Використовуйте подію beforeprint для створення окремих стилів друку за допомогою JavaScript, якщо ви не хочете або не можете використовувати медіа-запити CSS (@media print). Це може бути корисним у динамічних додатках, де стилі змінюються в залежності від взаємодії користувача.

автор: Bond

Синтаксис

window.addEventListener('beforeprint', function(event) {
  // Ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
63 6 13 50 12 9
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
63 63 6 13
Підтримка: серверні переглядачі
Переглядач Deno

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі перед друком усі елементи з класом no-print будуть приховані, що дозволяє отримати чистішу версію сторінки для друку. Це корисно, коли ви хочете приховати неважливі для друку елементи, такі як навігаційні панелі або кнопки.

HTML

<div class="no-print">перший елемент no-print</div>
<div class="no-print">другий елемент no-print</div>

JS

window.addEventListener('beforeprint', function(event) {
  document.querySelectorAll('.no-print').forEach(function(element) {
    element.style.display = 'none';
  });
  console.log('Елементи з класом no-print були приховані перед друком.');
});
автор: Bond

У цьому прикладі, коли користувач натискає кнопку "Друкувати", подія beforeprint перевіряє, чи встановлено прапорець "Приховати текстове поле під час друку". Якщо прапорець встановлено, текстове поле приховується перед друком. Після завершення друку подія afterprint відновлює початковий вигляд сторінки, роблячи текстове поле знову видимим, якщо воно було приховано. Це забезпечує користувачам гнучкість у налаштуванні вигляду сторінки для друку без впливу на її веб-версію.

автор: Bond

Цей приклад змінює розмір шрифту та висоту рядка на сторінці перед друком для оптимізації друкованої версії. Після завершення друку стилі сторінки повертаються до початкових значень, що забезпечує гармонійний вигляд сторінки як у друкованому режимі, так і після нього.

window.addEventListener('beforeprint', function(event) {
  const body = document.body;
  body.style.fontSize = '12px';
  body.style.lineHeight = '1.2';
  console.log('Розмір шрифту та висота рядка були змінені для друку.');
});

window.addEventListener('afterprint', function(event) {
  const body = document.body;
  body.style.fontSize = '';
  body.style.lineHeight = '';
  console.log('Стилі сторінки відновлені після друку.');
});
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід