W3docs

Глобальные атрибуты событий

Глобальные атрибуты событий HTML позволяют браузеру реагировать на действия пользователя, запуская JavaScript при нажатии, отправке формы и других событиях.

Событие происходит, когда браузер реагирует на определённое действие — щелчок мышью, нажатие клавиши, воспроизведение видео, отправку формы, изменение размера окна и т. д. Чтобы отреагировать на событие, к нему прикрепляют обработчик: фрагмент скрипта (обычно JavaScript), который выполняется при возникновении события.

HTML позволяет прикрепить обработчик прямо в разметке с помощью атрибута события. Каждый атрибут на этой странице начинается с on, за которым следует имя события (onclick, onkeydown, onsubmit, …). Все они появились в HTML5 и принимают JavaScript-код в качестве значения:

<button onclick="alert('Clicked!')">Click me</button>

Эти атрибуты событий являются глобальными — большинство из них можно размещать на любом элементе, — однако каждый из них имеет смысл лишь в подходящем контексте (атрибуты форм — на элементах управления формой, медиаатрибуты — на <audio>/<video> и т. д.).

Внимание

Встроенные атрибуты on* не рекомендуются в современном коде. Они смешивают поведение с разметкой, не позволяют легко подключить более одного обработчика и блокируются строгой Content Security Policy. Предпочтительнее использовать addEventListener в отдельном скрипте — это разделяет HTML и JavaScript и позволяет нескольким обработчикам слушать одно и то же событие:

<button id="myBtn">Click me</button>

<script>
  const btn = document.getElementById("myBtn");
  btn.addEventListener("click", () => {
    alert("Clicked!");
  });
</script>

В таблицах ниже атрибуты событий сгруппированы по категориям. Подробнее о том, как работают события в браузере, читайте в разделах JavaScript Events и HTML Global Attributes.

Атрибуты событий окна

События окна срабатывают для объекта window. Обычно они размещаются на теге <body>, где браузер сопоставляет их с window.

АтрибутОписание
onafterprintСрабатывает после печати документа.
onbeforeprintСрабатывает перед печатью документа.
onbeforeunloadСрабатывает перед выгрузкой документа (например, когда пользователь собирается покинуть страницу).
onblurСрабатывает, когда окно теряет фокус (пользователь переключается на другую вкладку или приложение).
onerrorСрабатывает при ошибке загрузки документа или ресурса.
onhashchangeСрабатывает при изменении фрагмента (части URL после #).
onloadСрабатывает, когда вся страница — изображения, CSS и скрипты — полностью загружена.
onmessageСрабатывает, когда окно получает сообщение (например, от postMessage).
onofflineСрабатывает, когда браузер теряет подключение к сети.
ononlineСрабатывает, когда браузер восстанавливает подключение к сети.
onpagehideСрабатывает, когда пользователь уходит со страницы.
onpageshowСрабатывает, когда пользователь переходит на страницу.
onpopstateСрабатывает при изменении активной записи в истории.
onresizeСрабатывает при изменении размера окна.
onstorageСрабатывает при обновлении области веб-хранилища (localStorage/sessionStorage).
onunloadСрабатывает при выгрузке страницы (удалении документа).
<body onload="document.body.style.background = '#eef'">
  <p>This page changes its background colour once it has loaded.</p>
</body>

Атрибуты событий форм

Событие, возникающее внутри формы, называется событием формы. Такие события происходят, когда пользователь открывает или закрывает форму, перемещается между формами или работает с данными в форме.

Атрибуты событий формы можно применять ко всем HTML-элементам, однако чаще всего они используются с элементами управления формой: <input>, <select> и <textarea>.

АтрибутОписание
onblurСрабатывает, когда элемент теряет фокус (пользователь переходит к другому элементу управления).
onchangeСрабатывает, когда значение элемента управления изменилось и элемент потерял фокус.
oncontextmenuСрабатывает при открытии контекстного меню (правая кнопка мыши) на элементе.
onfocusСрабатывает, когда элемент получает фокус.
oninputСрабатывает немедленно при каждом изменении значения элемента управления.
oninvalidСрабатывает, когда отправляемый элемент управления не проходит проверку ограничений.
onresetСрабатывает при сбросе формы к исходным значениям.
onsearchСрабатывает при поиске пользователем в поле <input type="search">.
onselectСрабатывает при выделении пользователем текста в <input> или <textarea>.
onsubmitСрабатывает при отправке формы.
<form onsubmit="alert('Submitting…'); return false;">
  <input type="text" name="name"
         onfocus="this.style.background = '#ffd'"
         onblur="this.style.background = ''"
         placeholder="Your name">
  <button type="submit">Send</button>
</form>

Возврат false из onsubmit (или вызов event.preventDefault() в JavaScript) предотвращает фактическую отправку формы — удобно при тестировании.

Атрибуты событий клавиатуры

Атрибуты событий клавиатуры можно применять ко всем HTML-элементам.

АтрибутОписание
onkeydownСрабатывает при нажатии клавиши. Повторяется, пока клавиша удерживается.
onkeypressСрабатывает при нажатии символьной клавиши. Устарел — используйте onkeydown.
onkeyupСрабатывает при отпускании нажатой клавиши.
<input type="text"
       onkeyup="document.getElementById('echo').textContent = this.value"
       placeholder="Type here">
<p>You typed: <span id="echo"></span></p>

Атрибуты событий мыши

События мыши возникают при взаимодействии мыши с HTML-документом. Атрибуты можно применять ко всем HTML-элементам.

АтрибутОписание
onclickСрабатывает при щелчке по элементу.
ondblclickСрабатывает при двойном щелчке по элементу.
ondragСрабатывает многократно во время перетаскивания элемента.
ondragendСрабатывает при завершении операции перетаскивания.
ondragenterСрабатывает, когда перетаскиваемый элемент попадает в допустимую зону сброса.
ondragleaveСрабатывает, когда перетаскиваемый элемент покидает допустимую зону сброса.
ondragoverСрабатывает многократно, пока перетаскиваемый элемент находится над допустимой зоной сброса.
ondragstartСрабатывает, когда пользователь начинает перетаскивать элемент.
ondropСрабатывает при сбросе перетаскиваемого элемента в допустимую зону сброса.
onmousedownСрабатывает при нажатии кнопки мыши над элементом.
onmousemoveСрабатывает при каждом движении указателя над элементом.
onmouseoutСрабатывает, когда указатель покидает элемент.
onmouseoverСрабатывает, когда указатель перемещается на элемент.
onmouseupСрабатывает при отпускании кнопки мыши над элементом.
onmousewheelУстарел — используйте onwheel.
onscrollСрабатывает при прокрутке полосы прокрутки элемента.
onwheelСрабатывает при прокрутке колёсика мыши над элементом.
<div onmousemove="this.textContent = event.offsetX + ', ' + event.offsetY"
     style="width:240px; height:120px; background:#eef; text-align:center; line-height:120px;">
  Move the mouse here
</div>

Атрибуты событий буфера обмена

АтрибутОписание
oncopyСрабатывает при копировании содержимого элемента.
oncutСрабатывает при вырезании содержимого элемента.
onpasteСрабатывает при вставке содержимого в элемент.

Атрибуты медиасобытий

Медиасобытия возникают в медиаэлементах — видео, изображениях и аудио. Атрибуты можно применять к любому HTML-элементу, однако обычно они используются с элементами audio, embed, img, object и video.

АтрибутОписание
onabortСрабатывает при прерывании загрузки медиа.
oncanplayСрабатывает, когда браузер буферизовал достаточно данных для начала воспроизведения.
oncanplaythroughСрабатывает, когда браузер предполагает возможность воспроизведения без остановки на буферизацию.
oncuechangeСрабатывает при изменении активной реплики текстовой дорожки (например, субтитров).
ondurationchangeСрабатывает при изменении продолжительности медиа.
onemptiedСрабатывает, когда медиа становится пустым (например, при потере соединения).
onendedСрабатывает, когда воспроизведение достигает конца медиа.
onerrorСрабатывает при ошибке загрузки медиа.
onloadeddataСрабатывает, когда загружен текущий кадр медиаданных.
onloadedmetadataСрабатывает, когда загружены метаданные (продолжительность, размеры, …).
onloadstartСрабатывает, когда браузер начинает загрузку медиа.
onpauseСрабатывает при приостановке воспроизведения.
onplayСрабатывает при начале или возобновлении воспроизведения.
onplayingСрабатывает, когда воспроизведение действительно запущено (например, после буферизации).
onprogressСрабатывает периодически во время загрузки медиа браузером.
onratechangeСрабатывает при изменении скорости воспроизведения (например, перемотка).
onseekedСрабатывает при завершении операции перемотки.
onseekingСрабатывает при начале операции перемотки.
onstalledСрабатывает, когда браузер пытается, но не может получить медиаданные.
onsuspendСрабатывает при намеренной приостановке загрузки медиа.
ontimeupdateСрабатывает при изменении позиции воспроизведения во время воспроизведения.
onvolumechangeСрабатывает при изменении громкости (включая отключение звука).
onwaitingСрабатывает, когда воспроизведение останавливается из-за отсутствия следующего буферизованного кадра.

Прочие события

АтрибутОписание
ontoggleСрабатывает, когда пользователь открывает или закрывает элемент <details>.
Информация

Некоторые атрибуты, которые можно встретить в старых справочниках, — onredo, onundo и onshow — никогда не были частью стандарта HTML или не поддерживаются браузерами, поэтому они не включены в этот список.

Практика

Практика
Что такое глобальные атрибуты событий в HTML?
Что такое глобальные атрибуты событий в HTML?
Was this page helpful?