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


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

Подія show спрацьовує, коли елемент <dialog> стає видимим для користувача. Ця подія відбувається після виклику методів show() або showModal(), які використовуються для відображення діалогових вікон на веб-сторінці. Подія корисна, якщо потрібно виконати певні дії одразу після відкриття діалогового вікна, наприклад, завантаження динамічних даних, активація інтерактивних елементів або зміна стану інтерфейсу користувача.

Елемент <dialog> спочатку був представлений як частина HTML5 і дозволяє створювати вбудовані діалогові вікна з можливістю виклику методом showModal() для модальних вікон (які блокують взаємодію з іншими елементами) або методом show() для звичайних вікон. Коли діалогове вікно стає видимим, автоматично спрацьовує подія show, яка дозволяє розробникам реагувати на цей момент.

Приклад:

const dialog = document.querySelector('dialog');

dialog.addEventListener('show', function() {
  console.log('Діалогове вікно відкрито');
});

dialog.showModal();

У цьому прикладі, коли метод showModal() викликається для відображення діалогового вікна, подія show спрацьовує і виводить повідомлення в консоль. Це дозволяє розробникам додавати будь-які додаткові дії або анімації після відкриття вікна.

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

автор: Bond

Порада

Подія show спрацьовує лише для елементів <dialog>. Якщо ви використовуєте інші способи відображення діалогових вікон (наприклад, через модифікацію стилів), подія не спрацює. У таких випадках краще вручну контролювати появу модальних вікон за допомогою подій click або focus.

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

Для перевірки, чи вікно вже відкрите, використовуйте властивість open у елемента <dialog>. Це дозволяє уникнути повторного відкриття або запуску подій, коли вікно вже активне.

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

Використовуйте метод showModal() для створення модальних вікон, які блокують взаємодію з іншими частинами сторінки, поки користувач не завершить взаємодію з діалогом. show дозволяє додавати анімації або інші події, пов'язані з відкриттям вікна.

автор: Bond

Синтаксис

element.addEventListener('show', function(event) {
  // код обробки події
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
20 22 7 23 14
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
42 22

Приклади

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

Користувач натискає на кнопку для відкриття діалогового вікна. Після того, як вікно стає видимим (подія show), у вікно завантажується динамічний контент, і оновлюється повідомлення з поточним часом відкриття діалогу. Це корисний приклад інтерактивного використання події show, коли важливо виконати певні дії після відкриття діалогового вікна.

автор: Bond

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

HTML


<dialog>демо</dialog>

JS

const dialog = document.querySelector('dialog');
const contentArea = document.querySelector('#dialogContent');

dialog.addEventListener('show', function() {
  // Динамічно завантажуємо контент у діалогове вікно
  fetch('/api/getDialogContent')
    .then(response => response.text())
    .then(data => {
      contentArea.innerHTML = data;
    });
});

dialog.showModal();
автор: Bond

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

HTML

<dialog id="dlg">
    <p>Діалогове вікно</p>
    <button onclick="this.closest('dialog').close()">Закрити</button>
</dialog>
<button id="openBtn">Відкрити діалог</button>

JS

// Події show не існує: про відкриття dialog повідомляє нова подія toggle
const dialog = document.getElementById('dlg');

dialog.addEventListener('toggle', () => {
    console.log('Діалог тепер', dialog.open ? 'відкритий' : 'закритий');
});

document.getElementById('openBtn').addEventListener('click', () => {
    dialog.showModal();
});
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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