IIFE - Глоссарий MDN Web Docs: определения веб-терминов

IIFE
====

**IIFE** (Immediately Invoked Function Expression) это JavaScript функция, которая выполняется сразу же после того, как она была определена.
```

(function () {
    statements
})();
```

Это тип выражений, также известный как Self-Executing Anonymous Function, который состоит из двух основных частей. Первая - это сама анонимная функция с лексической областью видимости, заключённым внутри `Оператора группировки` `()`. Благодаря этому переменные IIFE замыкаются в его пределах, и глобальная область видимости ими не засоряется.

Вторая часть создаёт мгновенно выполняющееся функциональное выражение `()` , благодаря которому JavaScript-движок выполняет функцию напрямую.

Примеры
-------

Функция становится мгновенно выполняющимся функциональным выражением. Переменные внутри функции не могут быть использованы за пределами её области видимости.
```

(function () {
    var aName = "Barry";
})();
// Variable name is not accessible from the outside scope
aName // throws "Uncaught ReferenceError: aName is not defined"
```

Переменная, которой присвоено IIFE, хранит в себе результат выполнения функции, но не саму функцию.
```

var result = (function () {
    var name = "Barry";
    return name;
})();
// Immediately creates the output:
result; // "Barry"
```

Узнать больше
-------------

### Материалы

* Ben Alman's blog post defining IIFEs
* Quick example (в конце абзаца "Functions", сразу после "Custom objects")


First input delay - Глоссарий MDN Web Docs: определения веб-терминов

First input delay
=================

**Задержка первого ввода** (англ. First input delay, FID) - одна из метрик производительности веб-страниц, которая описывает время, которое прошло с момента, когда пользователь впервые начал взаимодействовать с веб-страницей, т.е. нажал на ссылку, кнопку или использует элемент управления на основе JavaScript, до момента, когда веб-браузер может ответить на данное взаимодействие. Таким образом, это промежуток времени в миллисекундах между первым взаимодействием пользователя с веб-страницей и ответом браузера на это взаимодействие. Прокрутка и масштабирование не включены в этот показатель.

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

Смотрите также
--------------

* requestIdleCallback
* lazy loading (en-US)


Пустой элемент - Глоссарий MDN Web Docs: определения веб-терминов

Пустой элемент
==============

**Пустой элемент** — элемент HTML, SVG или MathML, который **не может** иметь дочерних узлов (т.е. вложенных элементов или текста внутри себя).

Спецификации HTML, SVG и MathML спецификации очень строго определяют, какой элемент что может содержать. Многие комбинации семантически не имеют смысла, например элемент `<audio>` внутри элемента `<hr>`.

В HTML использование закрывающего тега для пустого элемента обычно ошибочно. Например, `<input type="text"></input>` является недопустимым HTML.

Пустые элементы в HTML:

* `<area>`
* `<base>`
* `<br>`
* `<col>`
* `<embed>`
* `<hr>`
* `<img>`
* `<input>`
* `<link>`
* `<meta>`
* `<param>` (en-US)
* `<source>`
* `<track>`
* `<wbr>`


IANA - Глоссарий MDN Web Docs: определения веб-терминов

IANA
====

**IANA** (Internet Assigned Numbers Authority) является дочерней компанией ICANN, задача которой записывать и/или назначать доменные имена, IP-адреса, и другие имена и номера, используемые Интернет протоколами.

Смотрите также
--------------

* Официальный сайт


BigInt - Глоссарий MDN Web Docs: определения веб-терминов

BigInt
======

В JavaScript, **BigInt** - числовой тип данных, который может представлять данные в формате длинной арифметики. В других языках программирования могут быть другие числовые типы, например целые числа, числа с плавающей запятой, числа двойной точности, большие числа.

Смотрите также
--------------

### Техническая документация

* Структура данных JavaScript: `BigInt`
* Глобальный объект JavaScript `BigInt`


SVG - Глоссарий MDN Web Docs: определения веб-терминов

SVG
===

*Масштабируемая векторная графика* ( **SVG** ) - это формат двумерного векторного изображения на основе синтаксиса XML.

W3C начал работу над SVG в конце 1990 - х годов, но SVG стал популярным, когда Internet Explorer 9 вышел с поддержкой SVG. Все основные, браузеры теперь поддерживают SVG.

На основе синтаксиса XML, SVG можно стилизовать с помощью CSS и сделать интерактивным с использованием JavaScript. HTML5 теперь позволяет прямое встраивание тегов SVG в HTML документ.

В качестве формата векторного изображения графика SVG может масштабироваться бесконечно, делая их неоценимыми в адаптивном дизайне (en-US) , поскольку вы можете создавать элементы интерфейса и графику, масштабируемые для любого размера экрана. SVG также предоставляет полезный набор инструментов, таких как обрезание, маскирование, фильтры и анимации.

Смотрите также
--------------

### Изучение SVG

* W3.org's SVG Primer
### Техническая документация

* SVG documentation on MDN
* Latest SVG specification


First CPU idle - Глоссарий MDN Web Docs: определения веб-терминов

First CPU idle
==============

Метрика **First CPU Idle** показывает, через какое время страница становится "минимально" интерактивной, или когда основной поток достаточно свободен, чтобы обработать пользовательский ввод. Это нестандартный показатель веб-производительности от компании Google. Он отражает момент, когда большинство (но не обязательно все) видимых элементов пользовательского интерфейса становятся интерактивными и доступными для взаимодействия с пользователем. В среднем для большинства видов пользовательского ввода это равно 50 мс.

Смотрите также
--------------

* Метрики, которые были замещены First CPU Idle:
    + Время до интерактивности
    + Total blocking time


Блок (CSS) - Глоссарий MDN Web Docs: определения веб-терминов

Блок (CSS)
==========

**Блок** на Веб-странице это HTML элемент, который начинается с новой строки, т.е. под предыдущим элементом и над следующим (обычно называется *блочным элементом*). Например, `<p>` по умолчанию блочный элемент, в то время как `<a>` — *строчной элемент*: можно разместить несколько ссылок (одну за другой) в вашем HTML-коде и они все будут выводиться на одной и той же строке.

Используя свойство `display` можно указать, будет элемент строчным или блочным (помимо других вариантов); на **блоки** также влияют схемы позиционирования и использование свойства `position`.

Смотрите также
--------------

### Общая информация

* Visual formatting model


Блок (скриптинг) - Глоссарий MDN Web Docs: определения веб-терминов

Блок (скриптинг)
================

В JavaScript блок это набор связанных инструкций заключённых в скобки `{}`. Например, можно поместить блок инструкций после блока `if (condition)`, чтобы интерпретатор выполнял код в блоке, если условие имеет значение true, или пропускал целый блок, если значение условия false.

Узнай больше
------------

### Почитай вот это

* Блок инструкций в JavaScript


HTML

HTML
====

**HTML** (HyperText Markup Language — «язык гипертекстовой разметки») — самый базовый строительный блок Веба. Он определяет содержание и структуру веб-контента. Другие технологии, помимо HTML, обычно используются для описания внешнего вида/представления (CSS) или функциональности/поведения (JavaScript) веб-страницы.

Под гипертекстом ("hypertext") понимаются ссылки, которые соединяют веб-страницы друг с другом либо в пределах одного веб-сайта, либо между веб-сайтами. Ссылки являются фундаментальным аспектом Веба. Загружая контент в Интернет и связывая его со страницами, созданными другими людьми, вы становитесь активным участником Всемирной паутины.

HTML использует разметку ("markup") для отображения текста, изображений и другого контента в веб-браузере. HTML-разметка включает в себя специальные "элементы", такие как `<head>`, `<title>`, `<body>`, `<header>`, `<footer>`, `<article>`, `<section>`, `<p>`, `<div>`, `<span>`, `<img>`, `<aside>`, `<audio>`, `<canvas>`, `<datalist>`, `<details>`, `<embed>`, `<nav>`, `<output>`, `<progress>`, `<video>` и многие другие.

HTML-элемент выделяется из прочего текста в документе с помощью "тегов", которые состоят из имени элемента окружённого "`<`" и "`>`". Имя элемента внутри тега не чувствительно к регистру. То есть, оно может быть написано в верхнем или нижнем регистре, или смешано. Например, тег `<title>` может быть записан как `<Title>`, `<TITLE>`, или любым другим способом.

Статьи, представленные ниже, могут помочь вам больше узнать о HTML.

* Введение в HTML
 Если вы новичок в веб-разработке, обязательно прочитайте нашу статью "Основы HTML", чтобы узнать, что такое HTML и как его использовать.
* Руководства по HTML
 Статьи о том, как использовать HTML, а также обучающие материалы и исчерпывающие примеры можно найти в разделе "Пространство изучения HTML".
* Справка по HTML
 В нашем обширном разделе "Справка по HTML" вы найдёте подробности о каждом элементе и атрибуте в HTML.
Руководства для начинающих
--------------------------

Наше Пространство изучения HTML содержит множество модулей, которые обучают HTML с нуля — начальные знания не требуются.

Введение в HTML

Этот модуль закладывает основу, знакомя вас с важными понятиями и синтаксисом, такими как применение HTML к тексту, создание гиперссылок и использование HTML для построения веб-страницы.

Мультимедиа и встраивание

В этом модуле рассматривается, как использовать HTML для добавления мультимедиа на ваши веб-страницы, включая различные способы вставки изображений, а также для встраивания видео, аудио, и даже других веб-страниц целиком.

HTML-таблицы

Представление табличных данных на веб-странице в понятной, доступной форме может быть проблемой. Этот модуль охватывает базовую разметку таблиц, а также более сложные особенности, такие как добавление заголовков и описаний.

HTML-формы

Формы являются очень важной частью Веба — они предоставляют большую часть функциональности, необходимого для взаимодействия с веб-сайтами, например регистрация и вход в систему, отправка отзывов, покупка товаров, и многое другое. Этот модуль познакомит вас с созданием клиентских (client-side/front-end) частей форм.

Используйте HTML для решения распространённых задач.

Содержит ссылки на разделы, объясняющие как использовать HTML для решения самых распространённых задач при создании веб-страницы: работа с заголовками, добавление изображений или видео, выделение контента, создание простой формы и т.д.

Продвинутые темы
----------------

CORS: включённые изображения

Атрибут `crossorigin` в сочетании с соответствующим заголовком CORS, позволяет загружать изображения, определённые элементом `<img>`, из внешних источников и использовать в элементе `<canvas>`, как если бы они были загружены из текущего источника.

CORS: Настройки атрибутов

Некоторые HTML-элементы, предоставляющие поддержку CORS, такие как `<img>` или `<video>`, имеют атрибут `crossorigin` (свойство `crossOrigin`), который позволяет вам настраивать CORS-запросы для получаемых элементом данных.

Управление фокусом в HTML

DOM-Атрибут `activeElement` и DOM-метод `hasFocus()` помогают отслеживать и контролировать взаимодействие пользователя с элементами на веб-странице.

Предварительная загрузка контента с помощью rel="preload" (en-US)

Значение `preload` атрибута `rel` элемента `<link>` позволяет писать декларативные fetch-запросы в HTML `<head>`, указывая ресурсы, которые потребуются вашим страницам сразу после загрузки и, следовательно, которые вы хотите начать предварительно загружать на раннем этапе жизненного цикла страницы, прежде чем браузером запустится основной механизм рендеринга (отрисовки). Это гарантирует, что они станут доступными раньше и с меньшей вероятностью заблокируют первый рендеринг страницы, что приведёт к улучшению производительности. В этой статье приведено начальное руководство по работе с `preload` (предзагрузкой).

Справочники
-----------

Справка по HTML

HTML состоит из **элементов**, каждый из которых может быть изменён некоторым количеством **атрибутов**. HTML-документы связаны между собой ссылками.

Справка по HTML-элементам

Просмотр списка всех элементов HTML.

Справка по HTML-атрибутам

У элементов в HTML есть **атрибуты**. Это дополнительные величины, которые настраивают элементы или управляют их поведением различными способами.

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

Глобальные атрибуты могут быть указаны для всех элементов HTML, *даже тех, которые не указаны в стандарте*. Это означает, что любые нестандартные элементы обязаны по-прежнему разрешать эти атрибуты, даже если эти элементы делают документ несовместимым с HTML5.

Строчные и блочные элементы

Элементы HTML являются обычно "строчными" или "блочными". Строчный элемент занимает только пространство, ограниченное тегами, которые его определяют. Блочный элемент занимает все пространство своего родительского элемента (контейнера), тем самым создавая "блок".

Типы ссылок

В HTML различные типы ссылок могут использоваться для установления и определения связи между двумя документами. Элементы-ссылки, типы которых могут быть заданы, включают в себя `<a>`, `<area>` и `<link>`.

Поддержка медиа-форматов с помощью HTML-элементов audio и video

Элементы `<audio>` и `<video>` позволяют вам воспроизводить аудио и видео. Эти элементы предоставляют браузерную альтернативу аналогичным возможностям, которые есть в Adobe Flash и других плагинах.

Виды HTML-контента

HTML состоит из нескольких видов контента, каждый из которых разрешено использовать в определённых контекстах и запрещено в других. Так же, у каждого есть набор других категорий контента, которые они могут содержать, и элементы, которые могут или не могут использоваться в них. Это руководство по таким категориям.

Режим совместимости и стандартный режим

Историческая справка по режиму совместимости и стандартному режиму.

Похожие темы
------------

Применение цвета к HTML-элементам с помощью CSS

В этой статье описывается большинство способов использования CSS для добавления цвета к HTML-контенту, а также перечисляется, какие части документов HTML могут быть окрашены, и какие свойства CSS при этом используются. Включает примеры, ссылки на инструменты для создания палитры и многое другое.


SVG

SVG
===

**С чего начать**
 Этот урок поможет вам начать использовать SVG.

**Масштабируемая векторная графика (Scalable Vector Graphics — SVG)** является языком разметки расширенным из XML (en-US) для описания двухмерной векторной графики. SVG по существу является графикой, так же, как XHTML — текстом.

SVG по своим возможностям приближается к запатентованной технологии Adobe Flash, но отличается от неё тем, что SVG является рекомендацией W3C (то есть, стандартом), и тем, что это формат, основанный на XML, в противовес закрытому двоичному формату Flash. Он явно спроектирован для работы с другими стандартами W3C, такими, как CSS, DOM (en-US) и SMIL.

SVG-графика и связанные с ней поведения определяются в текстовых XML-файлах, что означает, что их можно искать, индексировать, создавать сценарии и сжимать. Кроме того, это означает, что они могут быть созданы и отредактированы с помощью любого текстового редактора и программ для рисования.

SVG — открытый стандарт, разработанный World Wide Web консорциумом (W3C) с 1999 года.

Документация
------------

Справочник по элементам SVG

Подробная информация о каждом элементе SVG.

Справочник по атрибутам SVG

Подробная информация о каждом атрибуте SVG.

Справочник по интерфейсу SVG DOM

Подробная информация по всему SVG DOM API.

Применение эффектов SVG к содержимому HTML

 SVG работает вместе с HTML, CSS и JavaScript.
 Используйте SVG для улучшения обычной страницы HTML или веб-приложения..

SVG в Mozilla

Замечания и информация о том, как SVG реализован в Mozilla.

* Полнота реализации SVG в Firefox
* SVG - учебное руководство
* SVG в XHTML

Инструменты
-----------

* Набор для тестирования SVG
* Валидатор SVG (уже не работает)
* Больше инструментов…
* Другие ресурсы: XML (en-US), CSS, DOM (en-US), Canvas
Примеры
-------

* Карты Google (маршруты поверх карты) и Документы Google (диаграммы в электронных таблицах)
* Меню из пузырьков на SVG
* Рекомендации по составлению SVG
* Обзор Проекта Mozilla SVG
* Часто задаваемые вопросы, касающиеся SVG и Mozilla
* Слайды и демонстрации с обсуждения SVG и Mozilla, проходившего на SVG Open 2009
* Использование SVG в качестве изображения (en-US)
* SVG анимация при помощи SMIL (en-US)
* Художественная галерея SVG
* Больше примеров (примеры SVG с carto.net)
### Анимация и взаимодействие

Как и HTML, SVG имеет объектную модель документа (DOM) и события и всё это может быть доступно через JavaScript. Это позволяет разработчикам создавать роскошные анимации и интерактивные изображения.

* Некоторые захватывающие работы с использованием SVG на svg-wow.org
* Расширение Firefox (Grafox) для добавления поддержки анимации с использованием SMIL
* Интерактивное управление фотографиями
* Использование `foreignObject` из SVG для изменения HTML
* Анимация SVG спидометр
### Карты, диаграммы, игры и эксперименты с 3D

В то время, как маленькие документы SVG могут серьёзно улучшить веб-контент, здесь представлены некоторые примеры тяжёлого использования SVG.

* Тетрис
* Connect 4
* Популяционная карта США
* jVectorMap (интерактивные карты для визуализации данных)


Руководства Web-разработчика

Руководства Web-разработчика
============================

**Эти статьи помогут изучить веб-технологии и интерфейсы API.**

Изучение HTML: руководства и уроки

**Язык гипертекстовой разметки HTML (HyperText Markup Language)** — это основной язык практически для всего веб-контента. Многое из того, что вы видите в окне браузера, описано с помощью HTML.

Изучение CSS

Каскадные таблицы стилей CSS (Cascading Style Sheets) — язык стилей, используемый для описания внешнего вида документа HTML.

Доставка аудио и видео контента (en-US)

Мы можем доставлять аудио и видео контент различными способами. Это могут быть как статичные медиа файлы, так и потоковые данные. Эта статья является отправной точкой в изучении различных механизмов доставки медиа ресурсов и совместимости работы с популярными браузерами.

Обработка аудио и видео

Веб-технологии примечательны тем, что они позволяют использовать различные инструменты в совокупности. Например, можно проводить манипуляции над имеющимися в браузере аудио и видео потоками с помощью `<canvas>`, WebGL или Web Audio API: напрямую изменять аудио и видео, т.е. добавлять эффекты к аудио (реверберацию, компрессор), или к видео (фильтры ч/б, сепия и т.д.). В этой статье рассказывается о том, как это сделать.

Руководство разработчика событий (en-US)

События связаны с:

* Шаблонами проектирования, используемыми для асинхронной обработки инцидентов, возникающих в жизненном цикле веб страницы
* Именованием, характеризацией и использованием большого количества инцидентов различного типа

Графика для Web

Современным веб-сайтам и веб-приложениям часто требуется отображать графику.

Уроки по Web API (en-US)

Список всех веб-API и как они работают.

JavaScript

Мощный скриптовый язык для создания приложений в Web.

Локализация и кодировка символов

По умолчанию браузер обрабатывает текст в кодировке Юникод (Unicode). При этом, при передаче информации через сеть (network) к браузеру символы кодируются байтами. Стандартом HTML рекомендуется использовать кодировку UTF-8 (так как она может представить любой Unicode символ) и обязательно объявлять, какая кодировка используется в документе.

Веб-разработка под мобильные устройства (en-US)

На этой странице даётся обзор основных методов разработки веб-сайтов, корректно работающих на мобильных устройствах. Смотрите также: Firefox для Android.

Прогрессивные веб-приложения

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

Оптимизация и производительность

Создаваемые вами современные веб-приложения и сайты должны иметь хорошую производительность - работать быстро и эффективно, как на персональных компьютерах (десктоп), так и на менее мощных мобильных устройствах.

Прямая и обратная обработка XML

Различные методы обработки XML с помощью web платформы.

The Web Open Font Format (WOFF)

WOFF — бесплатный файловый формат шрифтов.

Использование объектов FormData

Объект `FormData` позволяет создать набор пар ключ/значение и передать их, используя `XMLHttpRequest.` Объект `FormData` предназначен для передачи данных форм, однако может быть использован для передачи пар ключ/значение независимо от форм. Данные передаются в том же формате, как и данные, передаваемые методом ``submit()`` формы, с установленной кодировкой `enctype="multipart/form-data"`.

Пользовательский ввод и управление

Это руководство содержит рекомендации по обработке пользовательского ввода и внедрению управляющих элементов в веб-приложения. Также здесь вы найдёте соответствующие FAQs, живые примеры, ссылки на более подробные разборы близлежащих технологий.

Глоссарий (глоссарий терминов)

Определения и аббревиатуры в мире Web и Internet.

Смотрите также
--------------

* Справочник по веб-технологиям (en-US)


Прогрессивные веб-приложения

Прогрессивные веб-приложения
============================

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

![](/ru/docs/Web/Progressive_web_apps/discoverable.svg)

**Заметные** (en-US)

Приложения замечаются поисковыми системами.

![](/ru/docs/Web/Progressive_web_apps/installable.svg)

**Продвинутые (en-US)**

Доступные на любых устройствах без нужды в магазине приложений.

![](/ru/docs/Web/Progressive_web_apps/linkable.svg)

**Доступные (en-US)**

Легко поделиться ими через ссылку.

![](/ru/docs/Web/Progressive_web_apps/network-independent.svg)

**Независимые (en-US)**

Работают в офлайне или на низкоскоростных соединениях.

![](/ru/docs/Web/Progressive_web_apps/progressive.svg)

**Передовые (en-US)**

Работают для любого пользователя.

![](/ru/docs/Web/Progressive_web_apps/responsive.svg)

**Отзывчивые (en-US)**

Помещаются на любой экран: настольный компьютер, смартфон, планшет и т.д.

![](/ru/docs/Web/Progressive_web_apps/safe.svg)

**Безопасные (en-US)**

Специальный способ переноса данных предотвращает кражу информации.

Смотрите также
--------------

* Передовые веб-приложения (англ.) на Google Developers


Доступность

Доступность
===========

Доступность (Accessibility, A11y в англоязычной среде) в веб-разработке — это обеспечение возможности использования сайтов как можно большим числом людей, включая тех, чьи способности как-либо ограничены.

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

«Термин "специальные возможности" часто применяется для описания возможности использования или удобства использования системы людьми с ограниченными возможностями, например, инвалидами на креслах-колясках. Это понятие следует понимать более широко, например, оно охватывает шрифт Брайля, пандусы для инвалидов на креслах-колясках, аудио-сигналы на пешеходных переходах, оборудованные рифлёной тактильной плиткой пешеходные дорожки, разработку веб-сайтов и так далее." Статья Accessibility в английской Википедии

"**Интернет принципиально создан для всех людей на Земле,** независимо от их аппаратных, программных, языковых, культурных, территориальных, физических или умственных способностей." W3C - Accessibility

Документация
------------

Веб-разработка (en-US)

Набор статей для привлечения внимания к проблемам веб-разработки в мире специальных возможностей.

ARIA (en-US)

Набор статей о том, как сделать HTML-файлы доступнее с помощью ARIA.

Разработка вспомогательных технологий (технических средств реабилитации, ТСР)

Набор статей для разработчиков ТСР.

Mobile accessibility checklist

Этот документ предоставляет краткий список требований к разработке специальных возможностей для мобильных приложений.

Инструменты для веб-разработчиков
---------------------------------

* Fangs, эмулятор программы экранного доступа
* Claws - эмулятор программы экранного доступа
Другие полезные сайты
---------------------

* Список программ экранного доступа


Справочник по событиям

Справочник по событиям
======================

События DOM присылаются чтобы уведомить код о том, что интересующие его действия произошли. События могут возникать в результате действий пользователя, таких как использование мыши или изменение размера окна, изменения состояния базовой среды (например, низкий заряд батареи или мультимедийные события из операционной системы) и других причин.

Каждое событие представляет собой объект, который основан на интерфейсе `Event` и может иметь дополнительные поля и/или функции, позволяющие получить дополнительную информацию о том, что произошло. События могут описывать всё, что угодно: от простых действий пользователя до действий автоматизированной системы рассылки уведомлений, создаваемых моделью формирования экрана. Полный список различных типов событий приведен в разделе Event > Интерфейсы, основанные на Event.

Эта статья содержит список событий, которые могут быть отправлены; некоторые стандартные события определены в официальной документации, тогда как другие события являются специфичными для конкретных браузеров. Для примера, в списке приведены специфические для браузера Mozilla события, которые позволяют использовать add-ons для взаимодействия с браузером.

Наиболее распространённые категории
-----------------------------------

| Имя события | Происходит когда |
| --- | --- |
| `error (en-US)` | Не удалось загрузить ресурс. |
| `abort (en-US)` | Загрузка ресурса была прервана. |
| `load (en-US)` | Ресурс и его зависимые ресурсы завершили загрузку. |
| `beforeunload (en-US)` | Окно, документ и его ресурсы будут выгружены. |
| `unload (en-US)` | Выгружается документ или зависимый ресурс. |

| Имя события | Происходит когда |
| --- | --- |
| `online (en-US)` | Браузер получил доступ к сети. |
| `offline (en-US)` | Браузер потерял доступ к сети. |

| Имя события | Происходит когда |
| --- | --- |
| `focus (en-US)` | Элемент получил фокус (does not bubble). |
| `blur (en-US)` | Элемент потерял фокус (does not bubble). |

| Имя события | Происходит когда |
| --- | --- |
| `open` (en-US) | Установлено соединение с WebSocket. |
| `message` (en-US) | Сообщение принимается через WebSocket. |
| `error (en-US)` | Соединение WebSocket было закрыто с предубеждением (например, некоторые данные не могут быть отправлены). |
| `close` (en-US) | Соединение WebSocket было закрыто. |

| Имя события | Происходит когда |
| --- | --- |
| `pagehide (en-US)` | Выполняется обход записей журнала сессии. |
| `pageshow (en-US)` | Выполняется переход к записи журнала сессии. |
| `popstate (en-US)` | Выполняется переход к записи журнала сессии (в некоторых случаях). |

| Имя события | Происходит когда |
| --- | --- |
| `animationstart (en-US)` | CSS-анимация (en-US) началась. |
| `animationcancel` | CSS-анимация (en-US) прервалась. |
| `animationend (en-US)` | CSS-анимация (en-US) завершена. |
| `animationiteration (en-US)` | CSS-анимация (en-US) повторяется. |

| Имя события | Происходит когда |
| --- | --- |
| `transitionstart` | CSS переход (en-US) уже фактически начался (запустился после каких-либо задержек). |
| `transitioncancel` | CSS переход (en-US) отменён. |
| `transitionend (en-US)` | CSS переход (en-US) завершён. |
| `transitionrun` | CSS переход (en-US) начал выполняться (запускается до начала любой задержки).. |

| Имя события | Происходит когда |
| --- | --- |
| `reset (en-US)` | Кнопка сброса нажата |
| `submit (en-US)` | Кнопка "Отправить" нажата |

| Имя события | Происходит когда |
| --- | --- |
| `beforeprint (en-US)` | Диалоговое окно печати открыто |
| `afterprint (en-US)` | Диалоговое окно печати закрыто |

| Имя события | Происходит когда |
| --- | --- |
| `compositionstart (en-US)` | Подготавливается композиция отрывка текста (аналогично нажатию клавиш для ввода с клавиатуры, но работает с другими входами, такими как распознавание речи). |
| `compositionupdate (en-US)` | К отрывку составляемого текста добавляется символ. |
| `compositionend (en-US)` | Составление отрывка текста завершено или отменено. |

| Имя события | Происходит когда |
| --- | --- |
| `fullscreenchange (en-US)` | Элемент был переведён в полноэкранный режим или обратно в нормальный режим. |
| `fullscreenerror (en-US)` | Переход в полноэкранный режим был невозможен по техническим причинам или из-за отказа в разрешении. |
| `resize (en-US)` | Размер просмотра документа изменён. |
| `scroll (en-US)` | Документ или элемент были прокручены. |

| Имя события | Происходит когда |
| --- | --- |
| `cut (en-US)` | Выделение было вырезано и скопировано в буфер обмена |
| `copy (en-US)` | Выделение было скопировано в буфер обмена |
| `paste (en-US)` | Элемент из буфера обмена был вставлен |

| Имя события | Происходит когда |
| --- | --- |
| `keydown (en-US)` | Нажата любая клавиша |
| `keypress (en-US)` | Любая клавиша, кроме Shift, Fn, CapsLock, находится в нажатом положении. (Происходит непрерывно.) |
| `keyup (en-US)` | Любая клавиша отпущена |

| Имя события | Происходит когда |
| --- | --- |
| `auxclick` | Кнопка указывающего устройства (любая неосновная кнопка) была нажата и отпущена на элементе. |
| `click (en-US)` | Кнопка указывающего устройства (любая кнопка; soon to be primary button only) была нажата и отпущена на элементе. |
| `contextmenu (en-US)` | Правая кнопка мыши щелкнута (перед отображением контекстного меню). |
| `dblclick (en-US)` | На элементе дважды щёлкается кнопка указывающего устройства. |
| `mousedown (en-US)` | На элементе нажимается кнопка указывающего устройства. |
| `mouseenter (en-US)` | Указывающее устройство перемещено на элемент, к которому подключён обработчик. |
| `mouseleave (en-US)` | Указывающее устройство перемещается от элемента, к которому подключён обработчик. |
| `mousemove (en-US)` | Указывающее устройство перемещается по элементу. (Происходит непрерывно при движении мыши.) |
| `mouseover (en-US)` | Указывающее устройство перемещается на элемент, к которому подключён обработчик, или на один из его дочерних элементов. |
| `mouseout (en-US)` | Указывающее устройство перемещается от элемента, к которому подключён обработчик, или от одного из его дочерних элементов. |
| `mouseup (en-US)` | Кнопка указывающего устройства отпускается над элементом. |
| `pointerlockchange (en-US)` | Указатель был заблокирован или отпущен. |
| `pointerlockerror (en-US)` | Указатель был заблокирован по техническим причинам или из-за отказа в разрешении. |
| `select (en-US)` | Выбирается какой-то текст. |
| `wheel (en-US)` | Колесо указывающего устройства вращается в любом направлении. |

| Имя события | Происходит когда |
| --- | --- |
| `drag (en-US)` | Элемент или выделение текста перетаскивается. (Срабатывает непрерывно каждые 350 мс) |
| `dragend (en-US)` | Операция перетаскивания завершается (отпуская кнопку мыши или нажимая клавишу выхода). |
| `dragenter (en-US)` | Перетаскиваемый элемент или выделенный текст попадает в допустимую цель перетаскивания. |
| `dragstart (en-US)` | Пользователь начинает перетаскивать элемент или выделенный текст. |
| `dragleave (en-US)` | Перетаскиваемый элемент или выделенный текст оставляет допустимую цель перетаскивания. |
| `dragover (en-US)` | Выбранный элемент или текст перетаскивается над допустимой целью перетаскивания. (Срабатывает непрерывно каждые 350 мс) |
| `drop (en-US)` | An element is dropped on a valid drop target. |

| Имя события | Происходит когда |
| --- | --- |
| `audioprocess (en-US)` | Входной буфер `ScriptProcessorNode` (en-US) готов к обработке. |
| `canplay (en-US)` | Браузер может воспроизводить мультимедиа, но оценивает, что было загружено недостаточно данных для воспроизведения мультимедиа до конца без необходимости останавливаться для дальнейшей буферизации содержимого. |
| `canplaythrough (en-US)` | Браузер оценивает, что он может воспроизводить мультимедиа до конца, не останавливаясь для буферизации контента. |
| `complete (en-US)` | Рендеринг `OfflineAudioContext` (en-US) закончен. |
| `durationchange (en-US)` | Атрибут `duration` был обновлён. |
| `emptied (en-US)` | Медиа стало пустым; например, это событие отправляется, если медиа уже загружено (или частично загружено), и метод `load()` вызывается, чтобы перезагрузить его. |
| `ended (en-US)` | Воспроизведение остановлено, поскольку достигнут конец медиа. |
| `loadeddata (en-US)` | Закончилась загрузка первого фрейма медиа. |
| `loadedmetadata (en-US)` | Метаданные загружены. |
| `pause (en-US)` | Воспроизведение было приостановлено. |
| `play (en-US)` | Воспроизведение началось. |
| `playing (en-US)` | Воспроизведение готово к запуску после того, как оно было приостановлено или отложено из-за отсутствия данных. |
| `ratechange (en-US)` | Скорость воспроизведения изменилась. |
| `seeked (en-US)` | Операция *seek* завершена. |
| `seeking (en-US)` | Операция *seek* начата. |
| `stalled (en-US)` | Пользовательский агент пытается получить мультимедийные данные, но данные неожиданно не поступают.. |
| `suspend (en-US)` | Загрузка медиаданных приостановлена. |
| `timeupdate (en-US)` | Время, указанное атрибутом `currentTime`, было обновлено. |
| `volumechange (en-US)` | Громкость изменилась. |
| `waiting (en-US)` | Воспроизведение остановлено из-за временной нехватки данных. |

| Имя события | Происходит когда |
| --- | --- |
| `abort` (en-US) | Выполнение остановлено (не из-за ошибки). |
| `error (en-US)` | Выполнение не удалось. |
| `load` (en-US) | Выполнено успешно. |
| `loadend (en-US)` | Выполнение остановлено (после отправки "error", "abort" или "load"). |
| `loadstart (en-US)` | Выполнение началось. |
| `progress (en-US)` | В ходе выполнения. |
| `timeout` | Выполнение прекращено по истечении установленного времени. |

### События хранилища

`change (en-US)` (see Non-standard events)
 `storage (en-US)`

### События обновления

`checking`
`downloading`
`error (en-US)`
`noupdate`
`obsolete`
`updateready`### События изменения значений

`broadcast`
`CheckboxStateChange`
`hashchange (en-US)`
`input (en-US)`
`RadioStateChange`
`readystatechange (en-US)`
`ValueChange`### События без категорий

`invalid (en-US)`
`message` (en-US)
`message` (en-US)
`open` (en-US)
`show`

Менее распространённые и нестандартные события
----------------------------------------------

### Abortable Fetch события

| Имя события | Происходит когда |
| --- | --- |
| `abort` | A DOM request is aborted, i.e. using `AbortController.abort()`. |

### События веб виртуальной реальности (WebVR)

| Имя события | Происходит когда |
| --- | --- |
| `vrdisplayactivate` | When a VR display is able to be presented to, for example if an HMD has been moved to bring it out of standby, or woken up by being put on. |
| `vrdisplayblur` | when presentation to a `VRDisplay` (en-US) has been paused for some reason by the browser, OS, or VR hardware — for example, while the user is interacting with a system menu or browser, to prevent tracking or loss of experience. |
| `vrdisplayconnect` | when a compatible `VRDisplay` (en-US) is connected to the computer. |
| `vrdisplaydeactivate` | When a `VRDisplay` (en-US) can no longer be presented to, for example if an HMD has gone into standby or sleep mode due to a period of inactivity. |
| `vrdisplaydisconnect` | When a compatible `VRDisplay` (en-US) is disconnected from the computer. |
| `vrdisplayfocus` | When presentation to a `VRDisplay` (en-US) has resumed after being blurred. |
| `vrdisplaypresentchange` | The presenting state of a `VRDisplay` (en-US) changes — i.e. goes from presenting to not presenting, or vice versa. |

### SVG события

`SVGAbort`
`SVGError (en-US)`
`SVGLoad (en-US)`
`SVGResize`
`SVGScroll`
`SVGUnload`
`SVGZoom`### События базы данных

`abort` (en-US)
`blocked` (en-US)
`complete` (en-US)
`error (en-US)`
`success` (en-US)
`upgradeneeded` (en-US)
`versionchange` (en-US)

### События скриптов

`afterscriptexecute (en-US)`
`beforescriptexecute (en-US)`### События меню

`DOMMenuItemActive`
`DOMMenuItemInactive`### События окон

`close`

### Popup события

`popuphidden`
`popuphiding`
`popupshowing`
`popupshown`### События вкладок

`visibilitychange (en-US)`### События батареи

`chargingchange`
`chargingtimechange`
`dischargingtimechange`
`levelchange`### События вызовов

`alerting`
`busy`
`callschanged`
`cfstatechange`
`connected`
`connecting`
`dialing`
`disconnected`
`disconnecting`
`error`
`held`, `holding`
`incoming`
`resuming`
`statechange (en-US)`
`voicechange`### Сенсорные события

`compassneedscalibration`
`devicemotion (en-US)`
`deviceorientation (en-US)`
`orientationchange (en-US)`### Smartcard события

`icccardlockerror`
`iccinfochange`
`smartcard-insert`
`smartcard-remove`
`stkcommand`
`stksessionend`
`cardstatechange`### SMS и USSD события

`delivered`
`received`
`sent`
`ussdreceived`### Frame события

`mozbrowserclose`
`mozbrowsercontextmenu`
`mozbrowsererror`
`mozbrowsericonchange`
`mozbrowserlocationchange`
`mozbrowserloadend`
`mozbrowserloadstart`
`mozbrowseropenwindow`
`mozbrowsersecuritychange`
`mozbrowsershowmodalprompt`
`mozbrowsertitlechange`### События изменения DOM

`DOMAttributeNameChanged`
`DOMAttrModified`
`DOMCharacterDataModified`
`DOMContentLoaded (en-US)`
`DOMElementNameChanged`
`DOMNodeInserted`
`DOMNodeInsertedIntoDocument`
`DOMNodeRemoved`
`DOMNodeRemovedFromDocument`
`DOMSubtreeModified`

### События касаний

`touchcancel (en-US)`
`touchend (en-US)`
`touchmove (en-US)`
`touchstart (en-US)`### События указателя

`pointerover`
`pointerenter`
`pointerdown`
`pointermove`
`pointerup`
`pointercancel`
`pointerout`
`pointerleave`
`gotpointercapture`
`lostpointercapture`Стандартные события
-------------------

Эти события определены в официальных веб-спецификациях и должны быть общими для всех браузеров. Каждое событие перечисляется вместе с интерфейсом, представляющим объект, отправленный получателям события (так что вы можете найти информацию о том, какие данные предоставляются с каждым событием), а также ссылку на спецификацию или спецификации, которые определяют событие.

| Имя события | Тип события | Спецификация | Происходит когда... |
| --- | --- | --- | --- |
| `abort (en-US)` | `UIEvent` (en-US) | DOM L3 | The loading of a resource has been aborted. |
| `abort` (en-US) | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | Progression has been terminated (not due to an error). |
| `abort` (en-US) | `Event` | IndexedDB | A transaction has been aborted. |
| `afterprint (en-US)` | `Event` | HTML5 | The associated document has started printing or the print preview has been closed. |
| `animationcancel` | `AnimationEvent`
Экспериментальная возможность
 | CSS Animations | A CSS animation (en-US) has aborted. |
| `animationend (en-US)` | `AnimationEvent`
Экспериментальная возможность
 | CSS Animations | A CSS animation (en-US) has completed. |
| `animationiteration (en-US)` | `AnimationEvent`
Экспериментальная возможность
 | CSS Animations | A CSS animation (en-US) is repeated. |
| `animationstart (en-US)` | `AnimationEvent`
Экспериментальная возможность
 | CSS Animations | A CSS animation (en-US) has started. |
| `appinstalled` | `Event` | Web App Manifest | A web application is successfully installed as a progressive web app. |
| `audioprocess (en-US)` | `AudioProcessingEvent` (en-US)
Устарело
 | Web Audio API | The input buffer of a `ScriptProcessorNode` (en-US) is ready to be processed. |
| `audioend`
Экспериментальная возможность
 | `Event` | Web Speech API | The user agent has finished capturing audio for speech recognition. |
| `audiostart`
Экспериментальная возможность
 | `Event` | Web Speech API | The user agent has started to capture audio for speech recognition. |
| `beforeprint (en-US)` | `Event` | HTML5 | The associated document is about to be printed or previewed for printing. |
| `beforeunload (en-US)` | `BeforeUnloadEvent` | HTML5 | The window, the document and its resources are about to be unloaded. |
| `beginEvent (en-US)` | `TimeEvent` (en-US) | SVG | A SMIL (en-US) animation element begins. |
| `blocked` (en-US) |  | IndexedDB | An open connection to a database is blocking a `versionchange` transaction on the same database. |
| `blur (en-US)` | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element has lost focus (does not bubble). |
| `boundary`
Экспериментальная возможность
 | `SpeechSynthesisEvent` (en-US) | Web Speech API | The spoken utterance reaches a word or sentence boundary |
| `canplay (en-US)` | `Event` | HTML5 media | The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content. |
| `canplaythrough (en-US)` | `Event` | HTML5 media | The user agent can play the media up to its end without having to stop for further buffering of content. |
| `change (en-US)` | `Event` | DOM L2, HTML5 | The `change` event is fired for `<input>`, `<select>`, and `<textarea>` (en-US) elements when a change to the element's value is committed by the user. |
| `chargingchange` | `Event` | Battery status | The battery begins or stops charging. |
| `chargingtimechange` | `Event` | Battery status | The `chargingTime` attribute has been updated. |
| `click (en-US)` | `MouseEvent` | DOM L3 | A pointing device button has been pressed and released on an element. |
| `close` (en-US) | `Event` | WebSocket | A WebSocket connection has been closed. |
| `complete` (en-US) |  | IndexedDB | A transaction successfully completed. |
| `complete (en-US)` | `OfflineAudioCompletionEvent` (en-US)
Устарело
 | Web Audio API | The rendering of an `OfflineAudioContext` (en-US) is terminated. |
| `compositionend (en-US)` | `CompositionEvent` (en-US) | DOM L3 | The composition of a passage of text has been completed or canceled. |
| `compositionstart (en-US)` | `CompositionEvent` (en-US) | DOM L3 | The composition of a passage of text is prepared (similar to keydown for a keyboard input, but works with other inputs such as speech recognition). |
| `compositionupdate (en-US)` | `CompositionEvent` (en-US) | DOM L3 | A character is added to a passage of text being composed. |
| `contextmenu (en-US)` | `MouseEvent` | HTML5 | The right button of the mouse is clicked (before the context menu is displayed). |
| `copy (en-US)` | `ClipboardEvent`
Экспериментальная возможность
 | Clipboard | The text selection has been added to the clipboard. |
| `cut (en-US)` | `ClipboardEvent`
Экспериментальная возможность
 | Clipboard | The text selection has been removed from the document and added to the clipboard. |
| `dblclick (en-US)` | `MouseEvent` | DOM L3 | A pointing device button is clicked twice on an element. |
| `devicechange` | `Event` | Media Capture and Streams | A media device such as a camera, microphone, or speaker is connected or removed from the system. |
| `devicemotion (en-US)` | `DeviceMotionEvent` (en-US)
Экспериментальная возможность
 | Device Orientation Events | Fresh data is available from a motion sensor. |
| `deviceorientation (en-US)` | `DeviceOrientationEvent` (en-US)
Экспериментальная возможность
 | Device Orientation Events | Fresh data is available from an orientation sensor. |
| `dischargingtimechange` | `Event` | Battery status | The `dischargingTime` attribute has been updated. |
| `DOMActivate`
Устарело
 | `UIEvent` (en-US) | DOM L3 | A button, link or state changing element is activated (use `click (en-US)` instead). |
| `DOMAttributeNameChanged`
Устарело
 | `MutationNameEvent` | DOM L3 Removed | The name of an attribute changed (use mutation observers (en-US) instead). |
| `DOMAttrModified`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | The value of an attribute has been modified (use mutation observers (en-US) instead). |
| `DOMCharacterDataModified`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A text or another CharacterData (en-US) has changed (use mutation observers (en-US) instead). |
| `DOMContentLoaded (en-US)` | `Event` | HTML5 | The document has finished loading (but not its dependent resources). |
| `DOMElementNameChanged`
Устарело
 | `MutationNameEvent` | DOM L3 Removed | The name of an element changed (use mutation observers (en-US) instead). |
| `DOMFocusIn`
Устарело
 | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element has received focus (use `focus (en-US)` or `focusin (en-US)` instead). |
| `DOMFocusOut`
Устарело
 | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element has lost focus (use `blur (en-US)` or `focusout (en-US)` instead). |
| `DOMNodeInserted`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A node has been added as a child of another node (use mutation observers (en-US) instead). |
| `DOMNodeInsertedIntoDocument`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A node has been inserted into the document (use mutation observers (en-US) instead). |
| `DOMNodeRemoved`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A node has been removed from its parent node (use mutation observers (en-US) instead). |
| `DOMNodeRemovedFromDocument`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A node has been removed from the document (use mutation observers (en-US) instead). |
| `DOMSubtreeModified`
Устарело
 | `MutationEvent` (en-US) | DOM L3 | A change happened in the document (use mutation observers (en-US) instead). |
| `drag (en-US)` | `DragEvent` (en-US) | HTML5 | An element or text selection is being dragged (every 350ms). |
| `dragend (en-US)` | `DragEvent` (en-US) | HTML5 | A drag operation is being ended (by releasing a mouse button or hitting the escape key). |
| `dragenter (en-US)` | `DragEvent` (en-US) | HTML5 | A dragged element or text selection enters a valid drop target. |
| `dragleave (en-US)` | `DragEvent` (en-US) | HTML5 | A dragged element or text selection leaves a valid drop target. |
| `dragover (en-US)` | `DragEvent` (en-US) | HTML5 | An element or text selection is being dragged over a valid drop target (every 350ms). |
| `dragstart (en-US)` | `DragEvent` (en-US) | HTML5 | The user starts dragging an element or text selection. |
| `drop (en-US)` | `DragEvent` (en-US) | HTML5 | An element is dropped on a valid drop target. |
| `durationchange (en-US)` | `Event` | HTML5 media | The `duration` attribute has been updated. |
| `emptied (en-US)` | `Event` | HTML5 media | The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the `load()` method is called to reload it. |
| `end`
Экспериментальная возможность
 | `Event` | Web Speech API | The speech recognition service has disconnected. |
| `end`
Экспериментальная возможность
 | `SpeechSynthesisEvent` (en-US) | Web Speech API | The utterance has finished being spoken. |
| `ended (en-US)` | `Event` | HTML5 media | Playback has stopped because the end of the media was reached. |
| `ended (en-US)` | `Event` | Web Audio API | Playback has stopped because the end of the media was reached. |
| `endEvent (en-US)` | `TimeEvent` (en-US) | SVG | A SMIL (en-US) animation element ends. |
| `error (en-US)` | `UIEvent` (en-US) | DOM L3 | A resource failed to load. |
| `error (en-US)` | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | Progression has failed. |
| `error (en-US)` | `Event` | WebSocket | A WebSocket connection has been closed with prejudice (some data couldn't be sent for example). |
| `error (en-US)` | `Event` | Server Sent Events | An event source connection has been failed. |
| `error (en-US)` | `Event` | IndexedDB | A request caused an error and failed. |
| `error`
Экспериментальная возможность
 | `Event` | Web Speech API | A speech recognition error occurs. |
| `error` | `SpeechSynthesisErrorEvent` (en-US) | Web Speech API | An error occurs that prevents the utterance from being successfully spoken. |
| `focus (en-US)` | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element has received focus (does not bubble). |
| `focusin (en-US)` | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element is about to receive focus (bubbles). |
| `focusout (en-US)` | `FocusEvent` (en-US)
Экспериментальная возможность
 | DOM L3 | An element is about to lose focus (bubbles). |
| `fullscreenchange (en-US)` | `Event` | Full Screen | An element was turned to fullscreen mode or back to normal mode. |
| `fullscreenerror (en-US)` | `Event` | Full Screen | It was impossible to switch to fullscreen mode for technical reasons or because the permission was denied. |
| `gamepadconnected (en-US)` | `GamepadEvent`
Экспериментальная возможность
 | Gamepad | A gamepad has been connected. |
| `gamepaddisconnected (en-US)` | `GamepadEvent`
Экспериментальная возможность
 | Gamepad | A gamepad has been disconnected. |
| `gotpointercapture` | `PointerEvent` (en-US) | Pointer Events | Element receives pointer capture. |
| `hashchange (en-US)` | `HashChangeEvent` (en-US) | HTML5 | The fragment identifier of the URL has changed (the part of the URL after the #). |
| `lostpointercapture` | `PointerEvent` (en-US) | Pointer Events | Element lost pointer capture. |
| `input (en-US)` | `Event` | HTML5 | The value of an element changes or the content of an element with the attribute contenteditable (en-US) is modified. |
| `invalid (en-US)` | `Event` | HTML5 | A submittable element has been checked and doesn't satisfy its constraints. |
| `keydown (en-US)` | `KeyboardEvent` | DOM L3 | A key is pressed down. |
| `keypress (en-US)`
Устарело
 | `KeyboardEvent` | DOM L3 | A key is pressed down and that key normally produces a character value (use input instead). |
| `keyup (en-US)` | `KeyboardEvent` | DOM L3 | A key is released. |
| `languagechange (en-US)`
Экспериментальная возможность
 | `Event` | HTML 5.1 | The user's preferred languages have changed. |
| `levelchange` | `Event` | Battery status | The `level` attribute has been updated. |
| `load (en-US)` | `UIEvent` (en-US) | DOM L3 | A resource and its dependent resources have finished loading. |
| `load` (en-US) | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | Progression has been successful. |
| `loadeddata (en-US)` | `Event` | HTML5 media | The first frame of the media has finished loading. |
| `loadedmetadata (en-US)` | `Event` | HTML5 media | The metadata has been loaded. |
| `loadend (en-US)` | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | Progress has stopped (after "error", "abort" or "load" have been dispatched). |
| `loadstart (en-US)` | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | Progress has begun. |
| `mark`
Экспериментальная возможность
 | `SpeechSynthesisEvent` (en-US) | Web Speech API | The spoken utterance reaches a named SSML "mark" tag. |
| `message` (en-US) | `MessageEvent` (en-US) | WebSocket | A message is received through a WebSocket. |
| `message` (en-US) | `MessageEvent` (en-US) | Web Workers | A message is received from a Web Worker. |
| `message` | `MessageEvent` (en-US) | Web Messaging | A message is received from a child (i)frame or a parent window. |
| `message` (en-US) | `MessageEvent` (en-US) | Server Sent Events | A message is received through an event source. |
| `messageerror` | `MessageEvent` (en-US) | `MessagePort` (en-US), Web Workers, Broadcast Channel (en-US), `Window` | A message error is raised when a message is received by an object. |
| `message`
Экспериментальная возможность
 | `ServiceWorkerMessageEvent` (en-US) or `ExtendableMessageEvent` (en-US), depending on context. | Service Workers | A message is received from a service worker, or a message is received in a service worker from another context. |
| `mousedown (en-US)` | `MouseEvent` | DOM L3 | A pointing device button (usually a mouse) is pressed on an element. |
| `mouseenter (en-US)` | `MouseEvent` | DOM L3 | A pointing device is moved onto the element that has the listener attached. |
| `mouseleave (en-US)` | `MouseEvent` | DOM L3 | A pointing device is moved off the element that has the listener attached. |
| `mousemove (en-US)` | `MouseEvent` | DOM L3 | A pointing device is moved over an element. |
| `mouseout (en-US)` | `MouseEvent` | DOM L3 | A pointing device is moved off the element that has the listener attached or off one of its children. |
| `mouseover (en-US)` | `MouseEvent` | DOM L3 | A pointing device is moved onto the element that has the listener attached or onto one of its children. |
| `mouseup (en-US)` | `MouseEvent` | DOM L3 | A pointing device button is released over an element. |
| `nomatch`
Экспериментальная возможность
 | `SpeechRecognitionEvent` (en-US) | Web Speech API | The speech recognition service returns a final result with no significant recognition. |
| `notificationclick` | `NotificationEvent` (en-US)
Экспериментальная возможность
 | Notifications API | A system notification spawned by `ServiceWorkerRegistration.showNotification()` has been clicked. |
| `offline (en-US)` | `Event` | HTML5 offline | The browser has lost access to the network. |
| `online (en-US)` | `Event` | HTML5 offline | The browser has gained access to the network (but particular websites might be unreachable). |
| `open` (en-US) | `Event` | WebSocket | A WebSocket connection has been established. |
| `open` (en-US) | `Event` | Server Sent Events | An event source connection has been established. |
| `orientationchange (en-US)` | `Event` | Screen Orientation | The orientation of the device (portrait/landscape) has changed |
| `pagehide (en-US)` | `PageTransitionEvent` (en-US) | HTML5 | A session history entry is being traversed from. |
| `pageshow (en-US)` | `PageTransitionEvent` (en-US) | HTML5 | A session history entry is being traversed to. |
| `paste (en-US)` | `ClipboardEvent`
Экспериментальная возможность
 | Clipboard | Data has been transferred from the system clipboard to the document. |
| `pause (en-US)` | `Event` | HTML5 media | Playback has been paused. |
| `pause`
Экспериментальная возможность
 | `SpeechSynthesisEvent` (en-US) | Web Speech API | The utterance is paused part way through. |
| `pointercancel` | `PointerEvent` (en-US) | Pointer Events | The pointer is unlikely to produce any more events. |
| `pointerdown` | `PointerEvent` (en-US) | Pointer Events | The pointer enters the active buttons state. |
| `pointerenter` | `PointerEvent` (en-US) | Pointer Events | Pointing device is moved inside the hit-testing boundary. |
| `pointerleave` | `PointerEvent` (en-US) | Pointer Events | Pointing device is moved out of the hit-testing boundary. |
| `pointerlockchange (en-US)` | `Event` | Pointer Lock | The pointer was locked or released. |
| `pointerlockerror (en-US)` | `Event` | Pointer Lock | It was impossible to lock the pointer for technical reasons or because the permission was denied. |
| `pointermove` | `PointerEvent` (en-US) | Pointer Events | The pointer changed coordinates. |
| `pointerout` | `PointerEvent` (en-US) | Pointer Events | The pointing device moved out of hit-testing boundary or leaves detectable hover range. |
| `pointerover` | `PointerEvent` (en-US) | Pointer Events | The pointing device is moved into the hit-testing boundary. |
| `pointerup` | `PointerEvent` (en-US) | Pointer Events | The pointer leaves the active buttons state. |
| `play (en-US)` | `Event` | HTML5 media | Playback has begun. |
| `playing (en-US)` | `Event` | HTML5 media | Playback is ready to start after having been paused or delayed due to lack of data. |
| `popstate (en-US)` | `PopStateEvent` (en-US) | HTML5 | A session history entry is being navigated to (in certain cases). |
| `progress (en-US)` | `ProgressEvent` (en-US) | Progress and XMLHttpRequest | In progress. |
| `push` | `PushEvent` (en-US)
Экспериментальная возможность
 | Push API | A Service Worker has received a push message. |
| `pushsubscriptionchange` | `PushEvent` (en-US)
Экспериментальная возможность
 | Push API | A PushSubscription (en-US) has expired. |
| `ratechange (en-US)` | `Event` | HTML5 media | The playback rate has changed. |
| `readystatechange (en-US)` | `Event` | HTML5 and XMLHttpRequest | The readyState attribute of a document has changed. |
| `repeatEvent (en-US)` | `TimeEvent` (en-US) | SVG | A SMIL (en-US) animation element is repeated. |
| `reset (en-US)` | `Event` | DOM L2, HTML5 | A form is reset. |
| `resize (en-US)` | `UIEvent` (en-US) | DOM L3 | The document view has been resized. |
| `resourcetimingbufferfull` | `Performance` | Resource Timing | The browser's resource timing buffer is full. |
| `result`
Экспериментальная возможность
 | `SpeechRecognitionEvent` (en-US)
Экспериментальная возможность
 | Web Speech API | The speech recognition service returns a result — a word or phrase has been positively recognized and this has been communicated back to the app. |
| `resume`
Экспериментальная возможность
 | `SpeechSynthesisEvent` (en-US)
Экспериментальная возможность
 | Web Speech API | A paused utterance is resumed. |
| `scroll (en-US)` | `UIEvent` (en-US) | DOM L3 | The document view or an element has been scrolled. |
| `seeked (en-US)` | `Event` | HTML5 media | A *seek* operation completed. |
| `seeking (en-US)` | `Event` | HTML5 media | A *seek* operation began. |
| `select (en-US)` | `UIEvent` (en-US) | DOM L3 | Some text is being selected. |
| `selectstart`
Экспериментальная возможность
 | `Event` | Selection API | A selection just started. |
| `selectionchange`
Экспериментальная возможность
 | `Event` | Selection API | The selection in the document has been changed. |
| `show` | `MouseEvent` | HTML5 | A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute |
| `slotchange` | `Event` | DOM | The node contents of a `HTMLSlotElement` (`<slot>`) have changed. |
| `soundend`
Экспериментальная возможность
 | `Event` | Web Speech API | Any sound — recognisable speech or not — has stopped being detected. |
| `soundstart`
Экспериментальная возможность
 | `Event` | Web Speech API | Any sound — recognisable speech or not — has been detected. |
| `speechend`
Экспериментальная возможность
 | `Event` | Web Speech API | Speech recognised by the speech recognition service has stopped being detected. |
| `speechstart`
Экспериментальная возможность
 | `Event` | Web Speech API | Sound that is recognised by the speech recognition service as speech has been detected. |
| `stalled (en-US)` | `Event` | HTML5 media | The user agent is trying to fetch media data, but data is unexpectedly not forthcoming. |
| `start`
Экспериментальная возможность
 | `Event` | Web Speech API | The speech recognition service has begun listening to incoming audio with intent to recognize grammars associated with the current `SpeechRecognition`. |
| `start` | `SpeechSynthesisEvent` (en-US) | Web Speech API | The utterance has begun to be spoken. |
| `storage (en-US)` | `StorageEvent` (en-US) | Web Storage | A storage area (localStorage (en-US) or sessionStorage (en-US)) has changed. |
| `submit (en-US)` | `Event` | DOM L2, HTML5 | A form is submitted. |
| `success` (en-US) | `Event` | IndexedDB | A request successfully completed. |
| `suspend (en-US)` | `Event` | HTML5 media | Media data loading has been suspended. |
| `SVGAbort` | `SVGEvent` (en-US) | SVG | Page loading has been stopped before the SVG (en-US) was loaded. |
| `SVGError (en-US)` | `SVGEvent` (en-US) | SVG | An error has occurred before the SVG (en-US) was loaded. |
| `SVGLoad (en-US)` | `SVGEvent` (en-US) | SVG | An SVG (en-US) document has been loaded and parsed. |
| `SVGResize` | `SVGEvent` (en-US) | SVG | An SVG (en-US) document is being resized. |
| `SVGScroll` | `SVGEvent` (en-US) | SVG | An SVG (en-US) document is being scrolled. |
| `SVGUnload` | `SVGEvent` (en-US) | SVG | An SVG (en-US) document has been removed from a window or frame. |
| `SVGZoom` | `SVGZoomEvent` | SVG | An SVG (en-US) document is being zoomed. |
| `timeout` | `ProgressEvent` (en-US) | XMLHttpRequest |  |
| `timeupdate (en-US)` | `Event` | HTML5 media | The time indicated by the `currentTime` attribute has been updated. |
| `touchcancel (en-US)` | `TouchEvent` | Touch Events | A touch point has been disrupted in an implementation-specific manners (too many touch points for example). |
| `touchend (en-US)` | `TouchEvent` | Touch Events | A touch point is removed from the touch surface. |
| `touchmove (en-US)` | `TouchEvent` | Touch Events | A touch point is moved along the touch surface. |
| `touchstart (en-US)` | `TouchEvent` | Touch Events | A touch point is placed on the touch surface. |
| `transitionend (en-US)` | `TransitionEvent` (en-US)
Экспериментальная возможность
 | CSS Transitions | A CSS transition (en-US) has completed. |
| `unload (en-US)` | `UIEvent` (en-US) | DOM L3 | The document or a dependent resource is being unloaded. |
| `upgradeneeded` (en-US) |  | IndexedDB | An attempt was made to open a database with a version number higher than its current version. A `versionchange` transaction has been created. |
| `userproximity` | `UserProximityEvent`
Экспериментальная возможность
 | Proximity Sensor | Fresh data is available from a proximity sensor (indicates whether the nearby object is `near` the device or not). |
| `voiceschanged`
Экспериментальная возможность
 | `Event` | Web Speech API | The list of `SpeechSynthesisVoice` (en-US) objects that would be returned by the `SpeechSynthesis.getVoices()` (en-US) method has changed (when the `voiceschanged` event fires.) |
| `versionchange` (en-US) |  | IndexedDB | A `versionchange` transaction completed. |
| `visibilitychange (en-US)` | `Event` | Page visibility | The content of a tab has become visible or has been hidden. |
| `volumechange (en-US)` | `Event` | HTML5 media | The volume has changed. |
| `waiting (en-US)` | `Event` | HTML5 media | Playback has stopped because of a temporary lack of data. |
| `wheel (en-US)` | `WheelEvent` (en-US) | DOM L3 | A wheel button of a pointing device is rotated in any direction. |

Нестандартные события
---------------------

| Имя события | Тип события | Спецификация | Происходит когда... |
| --- | --- | --- | --- |
| `afterscriptexecute (en-US)` | `Event` | *Mozilla Specific* | A script has been executed. |
| `beforescriptexecute (en-US)` | `Event` | *Mozilla Specific* | A script is about to be executed. |
| `beforeinstallprompt` | `Event` | *Chrome specific* | A user is prompted to save a web site to a home screen on mobile. |
| `cardstatechange` |  | *Firefox OS specific* | The `MozMobileConnection.cardState` property changes value. |
| `change (en-US)` | `DeviceStorageChangeEvent` | *Firefox OS specific* | This event is triggered each time a file is created, modified or deleted on a given storage area. |
| `connectionInfoUpdate` |  | *Firefox OS specific* | The informations about the signal strength and the link speed have been updated. |
| `cfstatechange` |  | *Firefox OS specific* | The call forwarding state changes. |
| `datachange` |  | *Firefox OS specific* | The `MozMobileConnection.data` object changes values. |
| `dataerror` |  | *Firefox OS specific* | The `MozMobileConnection.data` object receive an error from the RIL. |
| `DOMMouseScroll (en-US)`
Устарело
 |  | *Mozilla specific* | The wheel button of a pointing device is rotated (detail attribute is a number of lines). (use `wheel (en-US)` instead) |
| `dragdrop`
Устарело
 | `DragEvent` | *Mozilla specific* | An element is dropped (use `drop (en-US)` instead). |
| `dragexit`
Устарело
 | `DragEvent` | *Mozilla specific* | A drag operation is being ended(use `dragend (en-US)` instead). |
| `draggesture`
Устарело
 | `DragEvent` | *Mozilla specific* | The user starts dragging an element or text selection (use `dragstart (en-US)` instead). |
| `icccardlockerror` |  | *Firefox OS specific* | the `MozMobileConnection.unlockCardLock()` or `MozMobileConnection.setCardLock()` methods fails. |
| `iccinfochange` |  | *Firefox OS specific* | The `MozMobileConnection.iccInfo` object changes. |
| `localized` |  | *Mozilla Specific* | The page has been localized using data-l10n-\* attributes. |
| `mousewheel (en-US)`
Устарело
 |  | *IE invented* | The wheel button of a pointing device is rotated. |
| `MozAudioAvailable` | `Event` | *Mozilla specific* | The audio buffer is full and the corresponding raw samples are available. |
| `MozBeforeResize` |  | *Mozilla specific* | A window is about to be resized. |
| `mozbrowseractivitydone` |  | *Firefox OS Browser API-specific* | Sent when some activity has been completed (complete description TBD.) |
| `mozbrowserasyncscroll` |  | *Firefox OS Browser API-specific* | Sent when the scroll position within a browser `<iframe>` (en-US) changes. |
| `mozbrowseraudioplaybackchange` |  | *Firefox OS Browser API-specific* | Sent when audio starts or stops playing within the browser `<iframe>` (en-US) content. |
| `mozbrowsercaretstatechanged` |  | *Firefox OS Browser API-specific* | Sent when the text selected inside the browser `<iframe>` (en-US) content changes. |
| `mozbrowserclose` |  | *Firefox OS Browser API-specific* | Sent when window.close() is called within a browser `<iframe>` (en-US). |
| `mozbrowsercontextmenu` |  | *Firefox OS Browser API-specific* | Sent when a browser `<iframe>` (en-US) try to open a context menu. |
| `mozbrowserdocumentfirstpaint` |  | *Firefox OS Browser API-specific* | Sent when a new paint occurs on any document in the browser `<iframe>` (en-US). |
| `mozbrowsererror` |  | *Firefox OS Browser API-specific* | Sent when an error occured while trying to load a content within a browser iframe |
| `mozbrowserfindchange` |  | *Firefox OS Browser API-specific* | Sent when a search operation is performed on the browser `<iframe>` (en-US) content (see HTMLIFrameElement search methods (en-US).) |
| `mozbrowserfirstpaint` |  | *Firefox OS Browser API-specific* | Sent when the `<iframe>` (en-US) paints content for the first time (this doesn't include the initial paint from *about:blank*.) |
| `mozbrowsericonchange` |  | *Firefox OS Browser API-specific* | Sent when the favicon of a browser iframe changes. |
| `mozbrowserlocationchange` |  | *Firefox OS Browser API-specific* | Sent when an browser iframe's location changes. |
| `mozbrowserloadend` |  | *Firefox OS Browser API-specific* | Sent when the browser iframe has finished loading all its assets. |
| `mozbrowserloadstart` |  | *Firefox OS Browser API-specific* | Sent when the browser iframe starts to load a new page. |
| `mozbrowsermanifestchange` |  | *Firefox OS Browser API-specific* | Sent when a the path to the app manifest changes, in the case of a browser `<iframe>` (en-US) with an open web app embedded in it. |
| `mozbrowsermetachange` |  | *Firefox OS Browser API-specific* | Sent when a `<meta>` elelment is added to, removed from or changed in the browser `<iframe>` (en-US)'s content. |
| `mozbrowseropensearch` |  | *Firefox OS Browser API-specific* | Sent when a link to a search engine is found. |
| `mozbrowseropentab` |  | *Firefox OS Browser API-specific* | Sent when a new tab is opened within a browser `<iframe>` (en-US) as a result of the user issuing a command to open a link target in a new tab (for example `ctrl`/`cmd` + click.) |
| `mozbrowseropenwindow` |  | *Firefox OS Browser API-specific* | Sent when `window.open()` (en-US) is called within a browser iframe. |
| `mozbrowserresize` |  | *Firefox OS Browser API-specific* | Sent when the browser `<iframe>` (en-US)'s window size has changed. |
| `mozbrowserscroll` |  | *Firefox OS Browser API-specific* | Sent when the browser `<iframe>` (en-US) content scrolls. |
| `mozbrowserscrollareachanged` |  | *Firefox OS Browser API-specific* | Sent when the available scrolling area in the browser `<iframe>` (en-US) changes. This can occur on resize and when the page size changes (while loading for example.) |
| `mozbrowserscrollviewchange` |  | *Firefox OS Browser API-specific* | Sent when asynchronous scrolling (i.e. APCZ) starts or stops. |
| `mozbrowsersecuritychange` |  | *Firefox OS Browser API-specific* | Sent when the SSL state changes within a browser iframe. |
| `mozbrowserselectionstatechanged` |  | *Firefox OS Browser API-specific* | Sent when the text selected inside the browser `<iframe>` (en-US) content changes. Note that this is deprecated, and newer implementations use `mozbrowsercaretstatechanged` instead. |
| `mozbrowsershowmodalprompt` |  | *Firefox OS Browser API-specific* | Sent when `alert()`, `confirm()` or `prompt()` are called within a browser iframe |
| `mozbrowsertitlechange` |  | *Firefox OS Browser API-specific* | Sent when the document.title changes within a browser iframe. |
| `mozbrowserusernameandpasswordrequired` |  | *Firefox OS Browser API-specific* | Sent when an HTTP authentification is requested. |
| `mozbrowservisibilitychange` |  | *Firefox OS Browser API-specific* | Sent when the visibility state of the current browser iframe `<iframe>` (en-US) changes, for example due to a call to `setVisible()`. |
| `MozGamepadButtonDown` |  | *To be specified* | A gamepad button is pressed down. |
| `MozGamepadButtonUp` |  | *To be specified* | A gamepad button is released. |
| `MozMousePixelScroll (en-US)`
Устарело
 |  | *Mozilla specific* | The wheel button of a pointing device is rotated (detail attribute is a number of pixels). (use wheel instead) |
| `MozOrientation`
Устарело
 |  | *Mozilla specific* | Fresh data is available from an orientation sensor (see deviceorientation). |
| `MozScrolledAreaChanged` | `UIEvent` (en-US) | *Mozilla specific* | The document view has been scrolled or resized. |
| `moztimechange` |  | *Mozilla specific* | The time of the device has been changed. |
| MozTouchDown
Устарело
 |  | *Mozilla specific* | A touch point is placed on the touch surface (use touchstart instead). |
| MozTouchMove
Устарело
 |  | *Mozilla specific* | A touch point is moved along the touch surface (use touchmove instead). |
| MozTouchUp
Устарело
 |  | *Mozilla specific* | A touch point is removed from the touch surface (use touchend instead). |
| `alerting` | `CallEvent` | *To be specified* | The correspondent is being alerted (his/her phone is ringing). |
| `busy` | `CallEvent` | *To be specified* | The line of the correspondent is busy. |
| `callschanged` | `CallEvent` | *To be specified* | A call has been added or removed from the list of current calls. |
| onconnected `connected` | `CallEvent` | *To be specified* | A call has been connected. |
| `connecting` | `CallEvent` | *To be specified* | A call is about to connect. |
| `delivered` | `SMSEvent` | *To be specified* | An SMS has been successfully delivered. |
| `dialing` | `CallEvent` | *To be specified* | The number of a correspondent has been dialed. |
| `disabled` |  | *Firefox OS specific* | Wifi has been disabled on the device. |
| `disconnected` | `CallEvent` | *To be specified* | A call has been disconnected. |
| `disconnecting` | `CallEvent` | *To be specified* | A call is about to disconnect. |
| `enabled` |  | *Firefox OS specific* | Wifi has been enabled on the device. |
| `error` | `CallEvent` | *To be specified* | An error occurred. |
| `held` | `CallEvent` | *To be specified* | A call has been held. |
| `holding` | `CallEvent` | *To be specified* | A call is about to be held. |
| `incoming` | `CallEvent` | *To be specified* | A call is being received. |
| `received` | `SMSEvent` | *To be specified* | An SMS has been received. |
| `resuming` | `CallEvent` | *To be specified* | A call is about to resume. |
| `sent` | `SMSEvent` | *To be specified* | An SMS has been sent. |
| `statechange (en-US)` | `CallEvent` | *To be specified* | The state of a call has changed. |
| `statuschange` |  | *Firefox OS specific* | The status of the Wifi connection changed. |
| `overflow` | `UIEvent` (en-US) | *Mozilla specific* | An element has been overflowed by its content or has been rendered for the first time in this state (only works for elements styled with `overflow` != `visible`). |
| `smartcard-insert` |  | *Mozilla specific* | A smartcard has been inserted. |
| `smartcard-remove` |  | *Mozilla specific* | A smartcard has been removed. |
| `stkcommand` |  | *Firefox OS specific* | The STK Proactive Command is issued from ICC. |
| `stksessionend` |  | *Firefox OS specific* | The STK Session is terminated by ICC. |
| `touchenter` | `TouchEvent` | Touch Events Removed |  |
| `touchleave` | `TouchEvent` | Touch Events Removed |  |
| `underflow` | `UIEvent` (en-US) | *Mozilla specific* | An element is no longer overflowed by its content (only works for elements styled with `overflow` != `visible`). |
| `uploadprogress`
Устарело
 | `ProgressEvent` (en-US) | *Mozilla Specific* | Upload is in progress (see `progress (en-US)`). |
| `ussdreceived` |  | *Firefox OS specific* | A new USSD message is received |
| `voicechange` |  | *Firefox OS specific* | The `MozMobileConnection.voice` object changes values. |
| `msContentZoom` |  | *Microsoft specific* |  |
| `MSManipulationStateChanged` |  | *Microsoft specific* |  |
| `MSPointerHover`
Устарело
 |  | *Microsoft specific* |  |

События, специфичные для Mozilla
--------------------------------

**Примечание:** those events are never exposed to web content and can only be used in chrome content context.

### XUL события

| Имя события | Тип события | Спецификация | Происходит когда... |
| --- | --- | --- | --- |
| `broadcast` |  | XUL | An `observer` noticed a change to the attributes of a watched broadcaster. |
| `CheckboxStateChange` |  | XUL | The state of a `checkbox` has been changed either by a user action or by a script (useful for accessibility). |
| close |  | XUL | The close button of the window has been clicked. |
| `command` |  | XUL | An element has been activated. |
| `commandupdate` |  | XUL | A command update occurred on a `commandset` element. |
| `DOMMenuItemActive` |  | XUL | A menu or menuitem has been hovered or highlighted. |
| `DOMMenuItemInactive` |  | *XUL* | A menu or menuitem is no longer hovered or highlighted. |
| `popuphidden` | `PopupEvent` | *XUL* | A menupopup, panel or tooltip has been hidden. |
| `popuphiding` | `PopupEvent` | *XUL* | A menupopup, panel or tooltip is about to be hidden. |
| `popupshowing` | `PopupEvent` | *XUL* | A menupopup, panel or tooltip is about to become visible. |
| `popupshown` | `PopupEvent` | *XUL* | A menupopup, panel or tooltip has become visible. |
| `RadioStateChange` |  | XUL | The state of a `radio` has been changed either by a user action or by a script (useful for accessibility). |
| `ValueChange` |  | XUL | The value of an element has changed (a progress bar for example, useful for accessibility). |

### Дополнительные специфичные события

| Имя события | Тип события | Спецификация | Происходит когда... |
| --- | --- | --- | --- |
| MozSwipeGesture |  | *Addons specific* | A touch point is swiped across the touch surface |
| MozMagnifyGestureStart |  | *Addons specific* | Two touch points start to move away from each other. |
| MozMagnifyGestureUpdate |  | *Addons specific* | Two touch points move away from each other (after a MozMagnifyGestureStart). |
| MozMagnifyGesture |  | *Addons specific* | Two touch points moved away from each other (after a sequence of MozMagnifyGestureUpdate). |
| MozRotateGestureStart |  | *Addons specific* | Two touch points start to rotate around a point. |
| MozRotateGestureUpdate |  | *Addons specific* | Two touch points rotate around a point (after a MozRotateGestureStart). |
| MozRotateGesture |  | *Addons specific* | Two touch points rotate around a point (after a sequence of MozRotateGestureUpdate). |
| MozTapGesture |  | *Addons specific* | Two touch points are tapped on the touch surface. |
| MozPressTapGesture |  | *Addons specific* | A "press-tap" gesture happened on the touch surface (first finger down, second finger down, second finger up, first finger up). |
| MozEdgeUIGesture |  | *Addons specific* | A touch point is swiped across the touch surface to invoke the edge UI (Win8 only). |
| MozAfterPaint |  | *Addons specific* | Content has been repainted. |
| DOMPopupBlocked |  | *Addons specific* | popup был блокирован |
| DOMWindowCreated |  | *Addons specific* | Окно было создано. |
| DOMWindowClose |  | *Addons specific* | Окно будет закрыто. |
| DOMTitleChanged |  | *Addons specifc* | Заголовок окна изменён. |
| DOMLinkAdded |  | *Addons specifc* | Ссылка была добавлена внутри документа. |
| DOMLinkRemoved |  | *Addons specifc* | Ссылка была удалена внутри документа. |
| DOMMetaAdded |  | *Addons specific* | A `meta` element has been added to a document. |
| DOMMetaRemoved |  | *Addons specific* | A `meta` element has been removed from a document. |
| DOMWillOpenModalDialog |  | *Addons specific* | A modal dialog is about to open. |
| DOMModalDialogClosed |  | *Addons specific* | A modal dialog has been closed. |
| DOMAutoComplete |  | *Addons specific* | The content of an element has been auto-completed. |
| DOMFrameContentLoaded |  | *Addons specific* | The frame has finished loading (but not its dependent resources). |
| AlertActive |  | *Addons specific* | Элемент `notification` показан. |
| AlertClose |  | *Addons specific* | Элемент `notification` закрыт. |
| fullscreen |  | *Addons specific* | Browser fullscreen mode has been entered or left. |
| sizemodechange |  | *Addons specific* | Window has entered/left fullscreen mode, or has been minimized/unminimized. |
| MozEnteredDomFullscreen |  | *Addons specific* | DOM fullscreen (en-US) mode has been entered. |
| SSWindowClosing |  | *Addons specific* | The session store will stop tracking this window. |
| SSTabClosing |  | *Addons specific* | The session store will stop tracking this tab. |
| SSTabRestoring |  | *Addons specific* | Вкладка будет восстановлена. |
| SSTabRestored |  | *Addons specific* | Вкладка была восстановлена. |
| SSWindowStateReady |  | *Addons specific* | Состояние окна было переключено в состояние "готовое". |
| SSWindowStateBusy |  | *Addons specific* | Состояние окна было переключено в состояние "занятое". |
| TabOpen |  | *Addons specific* | Вкладка была открыта. |
| TabClose |  | *Addons specific* | Вкладка была закрыта. |
| TabSelect |  | *Addons specific* | Вкладка была выбрана. |
| TabShow |  | *Addons specific* | Вкладка была показана. |
| TabHide |  | *Addons specific* | Вкладка был скрыта. |
| TabPinned |  | *Addons specific* | Вкладка была закреплена. |
| TabUnpinned |  | *Addons specific* | Вкладка была откреплена. |

### События, связанные с инструментами разработчика

| Имя события | Тип события | Спецификация | Происходит когда... |
| --- | --- | --- | --- |
| CssRuleViewRefreshed |  | *devtools specific* | Представление "Правила" инспектора стилей было обновлены. |
| CssRuleViewChanged |  | *devtools specific* | Представление "Правила" инспектора стилей было изменены. |
| CssRuleViewCSSLinkClicked |  | *devtools specific* | Ссылка на файл CSS была нажата в представлении «Правила» инспектора стилей. |

Смотрите также
--------------

* `Event`
* Руководство по разработке событий


Веб-безопасность

Веб-безопасность
================

Обеспечение того, чтобы ваш веб-сайт или открытое веб-приложение было безопасным является критически важным. Даже простые ошибки в коде могут привести к утечке частной информации, завладеть которой хотят не добросовестные пользователи, с целью кражи данных. Эти статьи предоставляют информацию, которая может помочь вам обеспечить безопасность вашего кода.

Same-origin policy**Политика одинакового источника** (same-origin policy) определяет как документ или скрипт, загруженный из одного источника (origin), может взаимодействовать с ресурсом из другого источника. Это помогает изолировать потенциально вредоносные документы, снижая количество возможных векторов атак.


CSS: каскадные таблицы стилей

CSS: каскадные таблицы стилей
=============================

**Cascading Style Sheets** (**CSS**) — это язык иерархических правил (таблиц стилей), используемый для представления внешнего вида документа, написанного на HTML или XML (включая различные языки XML, такие как SVG и XHTML. CSS описывает, каким образом элемент должен отображаться на экране, на бумаге, голосом или с использованием других медиа средств.

**CSS** является одним из основных языков *свободной веб-разработки,* который стандартизован спецификацией W3C. Стандарт CSS делится на уровни: CSS1 в настоящее время устарел, CSS2.1 — рекомендован для применения, а CSS3, разбитый на более мелкие модули, развивается на пути стандартизации.

* Справочник по CSS
 Исчерпывающий справочник для опытных веб-разработчиков, описывающий каждое свойство и понятие CSS.
* Самоучитель по CSS
 Пошаговое руководство для помощи начинающим программистам CSS. Содержит все необходимые основы.
* Примеры CSS3
 Набор примеров (en-US) представляющий новейшие технологии CSS в действии: толчок к креативности.
Документация
------------

* Справочник CSS: исчерпывающий справочник для опытных веб-разработчиков, в котором описаны все свойства и понятия CSS.
* Ключевые понятия CSS:
    + Описание синтаксиса и внешнего вида языка
    + Специфичность, наследование и каскадирование (en-US)
    + Единицы измерения в CSS (en-US) и функции в CSS (en-US)
    + Блоковая модель и схлопывание внешних отступов
    + Содержащий блок
    + Контекст наложения и блочный контекст форматирования
    + Начальное, вычисленное, используемое и действительное значения
    + Краткая форма записи CSS свойств
    + Флексбокс-раскладка в CSS
    + Грид-раскладка в CSS
    + CSS-селекторы
    + Медиавыражения
    + Анимация
Книга рецептов
--------------

В Книге рецептов CSS разметки собраны примеры распространённых подходов, используемых для реализации разметки, которые вы сможете реализовать на своих сайтах. Эти рецепты также освещают различные способы использования спецификаций разметки и помогают сделать выбор нужной.

Инструменты для разработки CSS
------------------------------

* Используйте Службу проверки W3C CSS для проверки правильности вашего CSS кода. Это отличный инструмент для отладки.
* Инструменты разработчика Firefox позволяют просматривать и изменять «на лету» CSS страницы с помощью инструментов Инспектор и Редактор стилей.
* Расширение Web Developer для Firefox позволяет отслеживать и изменять «на лету» CSS код на просматриваемых сайтах.
Смотрите также
--------------

* CSS демо (en-US): почерпните вдохновение, изучив примеры новейших технологий CSS в действии.
* Веб-языки в которых часто применяется CSS: HTML, SVG, MathML, XHTML и XML.
* Вопросы о CSS на Stack Overflow


HTTP

HTTP
====

**Протокол передачи гипертекста (*Hypertext Transfer Protocol - HTTP)*** - это прикладной протокол для передачи гипертекстовых документов, таких как HTML. Он создан для связи между веб-браузерами и веб-серверами, хотя в принципе HTTP может использоваться и для других целей. Протокол следует классической клиент-серверной модели, когда клиент открывает соединение для создания запроса, а затем ждёт ответа. HTTP - это протокол без сохранения состояния, то есть сервер не сохраняет никаких данных (состояние) между двумя парами "запрос-ответ". Несмотря на то, что HTTP основан на TCP/IP, он также может использовать любой другой протокол транспортного уровня с гарантированной доставкой.

Учебники
--------

Узнайте, как использовать HTTP, благодаря учебникам и руководствам.

Обзор HTTP

Основные свойства клиент-серверного протокола: что можно сделать и для чего он предназначен.

HTTP-кеширование (HTTP Cache)

Кеширование - это важнейший инструмент для повышения производительности веб-сайтов. Эта статья описывает разные виды кеша, а также использование HTTP-заголовков для конфигурации и управления кешированием.

HTTP-куки (HTTP cookies)

Как работают куки, можно почитать в RFC 6265. При обслуживании HTTP-запроса сервер может отправить в ответе HTTP-заголовок `Set-Cookie`. После этого значение куки посылается клиентом с каждым запросом к этому серверу. Делается это в форме заголовка запроса `Cookie`. Дополнительно можно указать истечение срока куки, а так же ограничения для специфического домена или пути.

Контроль доступа (совместное использование ресурсов между разными источниками, HTTP access control (CORS))

**Межсайтовые HTTP-запросы** (кросс-сайтовые) - это HTTP-запросы к ресурсам, находящимся в домене, **отличающемся** от того, с которого производится запрос. Например, HTML-страница, загружаемая с домена А (`http://domaina.example`), запрашивает изображение с домена Б (`http://domainb.foo`), используя тег `img` (`http://domainb.foo/image.jpg`). Это происходит постоянно в мире веба: страницы загружают различные ресурсы в кросс-сайтовой манере, включая стили (CSS), изображения, скрипты и другие ресурсы. CORS позволяет разработчикам сайтов контролировать межсайтовые запросы.

Эволюция HTTP (en-US)

Краткое описание изменений, произошедших в HTTP, начиная с самых ранних версий, заканчивая новой HTTP/2 и далее.

Принципы веб-безопасности Mozilla

Сборник советов для помощи в разработке защищённых веб-приложений.

HTTP-сообщения (HTTP Messages)

Описывает тип и структуру разных видов сообщений HTTP/1.x и HTTP/2.

Обычный сеанс HTTP

Показывает и описывает течение обычного сеанса HTTP.

Управление подключениями в HTTP/1.x

Описывает три модели управления подключениями, доступными в HTTP/1.x, их сильные и слабые стороны.

Контроль предварительной загрузки DNS (Controlling DNS prefetching) (en-US)

Firefox, как и большинство других браузеров, выполняет **предварительную загрузку DNS (DNS prefetching)**. Это действие, когда браузеры превентивно выполняют разрешение доменных имён (получают имена доменов) для ссылок, по которым пользователь может перейти, а также для ссылок на ресурсы, такие как картинки, CSS, JavaScript. Эта предварительная загрузка выполняется в фоновом режиме, так что вполне вероятно, что к моменту обращения к объектам в документе DNS уже получен. Это уменьшает задержки, когда, например, пользователь кликает на ссылку.

Справочники
-----------

Глубже изучите HTTP с помощью справочников и документации.

HTTP-заголовки (HTTP Headers)

Заголовки HTTP-сообщения используются для точного описания загружаемого ресурса или поведения сервера или клиента. Пользовательские заголовки можно добавить, используя `X-` префикс; другие перечислены в IANA registry, содержание которого в свою очередь определено в RFC 4229. IANA так же поддерживает регистр предложенных новых HTTP-заголовков.

Методы HTTP-запроса

Различные операции, которые выполняются с HTTP:

* `GET`
* `POST`
* `OPTIONS`
* `DELETE`
* `TRACE`
* `PATCH`
* другие

Коды ответа (HTTP response codes)

Коды ответа HTTP указывают на результат выполнения определённого HTTP-запроса. Ответы сгруппированы в пять категорий: информационные ответы, удачные ответы, перенаправления, ошибки клиента и ошибки сервера.

Директивы CSP (en-US)

Поля заголовка ответа `Content-Security-Policy` (en-US) позволяют администраторам веб-сайтов контролировать ресурсы, которые браузер пользователя может загрузить на данную веб-страницу. За некоторым исключением, эти политики связаны с указанием сервера-источника и адресов доступа (обращения) скриптов.

Инструменты и ресурсы
---------------------

Полезные инструменты и ресурсы для понимания и отладки HTTP.

Инструменты разработчика Firefox

Сетевой монитор

Mozilla Observatory

Проект, созданный в помощь разработчикам, системным администраторам и специалистам по безопасности для создания безопасных и надёжных сайтов.

RedBot

Инструмент для проверки кеширования заголовков.

Принципы работы современных веб-браузеров

Комплексная статья по внутренностям браузеров и потоку запросов через протокол HTTP. Это нужно понимать всем веб-разработчикам.

Смотрите также
--------------

* Controlling DNS prefetching
* HTTP pipelining FAQ
* HTTP-куки (HTTP cookies)
* HTTP заголовки
* Basic access authentication
* HTTP контроль доступа (CORS)


JavaScript

JavaScript
==========

**JavaScript** (**JS**) — это легковесный интерпретируемый (или JIT-компилируемый) язык программирования с функциями первого класса. Наиболее широкое применение находит как язык сценариев веб-страниц, но также используется и в других программных продуктах, например, Node.js или Apache CouchDB. JavaScript это прототипно-ориентированный, мультипарадигменный язык с динамической типизацией, который поддерживает объектно-ориентированный, императивный и декларативный (например, функциональное программирование) стили программирования. Подробнее о JavaScript.

Эта часть сайта посвящена самому языку JavaScript, и она не затрагивает тонкостей, связанных с веб-страницами или окружением, в котором исполняется JavaScript. Информация об API, относящихся к веб-страницам, находится в разделах, посвящённых Веб-API и DOM (en-US).

Стандартом языка JavaScript является ECMAScript (en-US). По состоянию на 2012 год, все современные браузеры полностью поддерживают ECMAScript 5.1. Старые версии браузеров поддерживают по крайней мере - ECMAScript 3. 17 июня 2015 года состоялся выпуск шестой версии ECMAScript. Эта версия официально называется ECMAScript 2015, которую чаще всего называют ECMAScript 2015 или просто ES2015. С недавнего времени стандарты ECMAScript выпускаются ежегодно. Эта документация относится к последней версии черновика, которой является ECMAScript 2018.

Не следует путать JavaScript c языком программирования Java. И "Java", и "JavaScript" являются торговыми марками или зарегистрированными торговыми марками Oracle в США и других странах. Однако, у обоих языков различный синтаксис, семантика и применение.

Учебные материалы
-----------------

Научитесь программировать на JavaScript вместе с нашим руководством.

### Для абсолютных новичков

Загляните в наш Учебный План, если вам хочется изучить JavaScript, но у вас нет опыта в JavaScript или программировании. Доступные разделы:

Первые шаги в JavaScript

Отвечаем на такие вопросы, как "что такое JavaScript?", "как он выглядит?", "и что он может делать?", а также обсуждаем основные возможности JavaScript, такие, как переменные, строки, числа и массивы.

Структурные элементы JavaScript

Продолжаем наше изучение главных возможностей JavaScript, обращаем наше внимание на самые часто встречающиеся блоки кода, такие, как условные выражения, циклы, функции и события.

Введение в объекты JavaScript

Объектно-ориентированная природа JavaScript важна для понимания, если вы хотите углубить знание языка и писать более эффективный код. Поэтому мы подготовили модуль, который поможет вам в этом.

Асинхронный JavaScript

Обсуждение асинхронного JavaScript: почему это так важно, как эта возможность языка может использована для обработки потенциальных блокирующих операций, как, например получение данных с сервера.

Клиентские (браузерные) веб-API

Когда вы пишите клиент веб-сайтов или приложений на JavaScript, вы не далеко уйдёте без использования API – интерфейсов для взаимодействия с браузером и операционной системой, на которой запущен сайт, или даже для операций с данными, полученными от других веб-сайтов и сервисов. В этом цикле статей мы разбираемся, что такое API и как использовать некоторые самые распространённые API, которые вам встретятся при разработке.

### Руководство по JavaScript

Руководство по JavaScript

Более подробное руководство по языку программирования JavaScript, нацеленное на тех, кто уже имеет опыт программирования на JavaScript или на любом другом языке.

### Средний уровень

Понимание JavaScript-фреймворков для фронтенда

JavaScript-ффреймворки являются неотъемлемой частью современной веб-разработки,предоставляя разработчикам проверенные и протестированныеинструменты для создания масштабируемых и интерактивных веб-приложений. Многиесовременные компании используют фреймворки для своих решений, поэтому многие задачи связанные с разработкой клиентской части веб-приложений теперь требуют опыта работы с ними.

Повторное введение в JavaScript

Обзор для тех, кто *думает*, что знает JavaScript.

Структуры данных JavaScript

Обзор существующих структур данных в JavaScript.

Операторы сравнения и тождественности

JavaScript предоставляет три различных оператора сравнения значений: строгое равенство `===`, с приведением типов `==` и метод `Object.is()`.

Замыкания

Замыкания это сочетание функции и лексического окружения в котором она была определена.

### Продвинутый уровень

Наследование и цепочка прототипов

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

Строгий режим — "use strict"

Строгий режим говорит о том, что вы не можете использовать какую-либо переменную до её объявления. Это ограниченный вариант ECMAScript 5, для более быстрой производительности и простой отладки.

Типизированные массивы

Типизированные массивы предоставляют механизм для работы с необработанными двоичными данными в JavaScript.

Управление памятью

Жизненный цикл памяти и сборка мусора в JavaScript.

Модель параллелизма (мультипоточности) и цикл событий

В JavaScript есть модель параллелизма, основанная на "цикле событий".

Введение в использование XPath в JavaScript (en-US)

Этот документ описывает интерфейс для использования XPath (en-US) в JavaScript напрямую, внутри расширений и на веб-сайтах.

Справочник
----------

Подробный справочник по JavaScript.

Стандартные встроенные объекты

Узнайте о стандартных встроенных объектах `Array`, `Boolean`, `Date`, `Error`, `Function`, `JSON`, `Math`, `Number`, `Object`, `RegExp`, `String`, `Map` (en-US), `Set`, `WeakMap` , `WeakSet` и других.

Выражения и операторы

Узнайте о поведении таких операторов в JavaScript, как `instanceof`, `typeof`, `new`, `this`, приоритете операторов и многом другом.

Инструкции и объявления

Узнайте о `do-while`, `for-in`, `for-of`, `try-catch`, `let`, `var`, `const`, `if-else`, `switch` и многих других выражениях и ключевых словах в JavaScript.

Функции

Узнайте, как работать с функциями в JavaScript, чтобы разрабатывать свои приложения.

Инструменты и дополнительные ресурсы
------------------------------------

Полезные инструменты для написания и отладки вашего **JavaScript** кода.

Инструменты разработчика Firefox

Простой редактор JavaScript, Веб-консоль, JavaScript Профайлер (en-US), Отладчик и другие.

JavaScript шеллы

JavaScript шеллы позволяют быстро проверять фрагменты JavaScript-кода.

TogetherJS

Объединение усилий стало проще. Добавляя TogetherJS на вашу веб-страницу, ваши пользователи могут помочь другу-другу в реальном времени!

Stack Overflow

Вопросы по JavaScript на Stack Overflow.

Версии JavaScript и информация о релизах

Просмотрите историю возможностей JavaScript и их статус.

JSFiddle

Редактируйте JavaScript, CSS, HTML и получайте живые результаты. Используйте экспериментальные ресурсы и взаимодействуйте с вашей командой онлайн.

Plunker

Plunker - это онлайн-сообщество для создания, обмена и совместной работы над идеями, касающимися веб-разработки. Редактируйте ваши JavaScript, CSS, HTML файлы, смотрите результат их выполнения и организуйте их в файловую структуру.

JSBin

JS Bin это инструмент с открытым исходным кодом для отладки и совместной разработки.

Codepen

Codepen ещё одна платформа для совместной веб-разработки, дающие результат в реальном-времени.

StackBlitz

StackBlitz - это "песочница"/инструмент отладки, где вы можете размещать полновесные приложения написанные на React, Angular, т др.