Window - Интерфейсы веб API

Window
======

Объект `window` представляет собой окно, содержащее DOM документ; свойство `document` указывает на DOM document (en-US), загруженный в данном окне. Окно текущего документа может быть получено с помощью свойства `document.defaultView`.

Данный раздел содержит описание всех методов, свойств и событий, доступных через объект `window` DOM. Объект `window` реализует интерфейс `Window`, который наследуется от интерфейса `AbstractView`. Некоторые дополнительные глобальные функции, пространства имён объектов, интерфейсы и конструкторы, как правило, не связанные с окном, но доступные в нем, перечислены в JavaScript ссылки и DOM ссылки.

В браузерах, поддерживающих вкладки, таком как Firefox, каждая вкладка содержит свой собственный объект `window` (и если вы пишете расширение, окно браузера тоже является отдельным объектом window - см. Работа с окнами в chrome коде). Таким образом, объект `window` не разделяется между разными вкладками в одном и том же окне. Некоторые методы, а именно `window.resizeTo` (en-US) и `window.resizeBy` (en-US) применяется для всего окна и не принадлежат объекту `window` отдельной вкладки. Как правило, если что-то логически нельзя отнести ко вкладке, это относят к окну.

Свойства
--------

*Данный интерфейс наследует свойства из интерфейса `EventTarget`.*

Отметим, что свойства, являющиеся объектами (например, перезаписанные прототипы встроенных элементов), перечислены в отдельном разделе ниже.

`Window.caches` Только для чтения

Возвращает объект `CacheStorage`, связанный с текущим контекстом. Этот объект добавляет такой функционал как хранение ресурсов для использования вне сети и генерирования встроенных ответов на запросы.

`Window.closed`
Non-standard
Только для чтения

Свойство, указывающее было ли текущее окно закрыто или нет.

`Window.Components`
Non-standard

Точка доступа к богатой функциональности XPCOM. Некоторые свойства, т.к. classes, доступны только для достаточно привилегированного кода. **Web-код не должен использовать эти свойства.**

`Window.console`
Non-standard
 Только для чтения

Возвращает ссылку на объект консоли, обеспечивающего доступ к консоли браузера.

`Window.content` (en-US) and Window.content
Non-standard
Только для чтения

Возвращает ссылку на элемент содержимого в текущем окне. Устаревший вариант в нижним подчёркиванием более не доступен для Web-содержимого.

`Window.controllers`
Non-standard
Только для чтения

Возвращает XUL контроллер объектов для текущего окна chrome.

`Window.crypto` Только для чтения

Возвращает зашифрованный объект браузера.

`Window.defaultStatus`

Получает/устанавливает текст статус-бара для данного окна.

`Window.devicePixelRatio`
Non-standard
Только для чтения

Возвращает соотношение между физическими пикселями и пикселями на дисплее текущего устройства.

`Window.dialogArguments` Только для чтения

Получает аргументы, переданные в окно (если это диалоговое окно) в момент вызова `window.showModalDialog()` (en-US). Это `nsIArray`.

`Window.directories`

Синоним `window.personalbar` (en-US)

`Window.document` Только для чтения

Возвращает ссылку на содержащийся в окне документ.

`Window.frameElement` Только для чтения

Возвращает элемент, в который встроено окно, или null, если оно не встроено.

`Window.frames` Только для чтения

Возвращает массив дополнительных фреймов в текущем окне.

`Window.fullScreen` (en-US)

Это свойство указывает, отображается ли окно в полноэкранном режиме или нет.

`Window.globalStorage`
Non-standard

Не поддерживает с Gecko 13 (Firefox 13). Использовать вместо него`Window.localStorage`. Было: Множественные объекты хранения, которые используются для хранения данных на нескольких страницах.

`Window.history` Только для чтения

Возвращает ссылку на объект истории.

`Window.indexedDB` (en-US) Только для чтения

Обеспечивает механизм для приложений для возможности асинхронного доступа индексированных баз данных; возвращает объект `IDBFactory` (en-US).

`Window.innerHeight`

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

`window.innerWidth` (en-US)

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

`Window.isSecureContext` (en-US) Только для чтения

Возвращает булевское значение, указывающее является ли текущий контент безопасным (`true`) или нет (`false`).

`Window.length` Только для чтения

Возвращает число фреймов в окне. Смотрите также `window.frames`.

`Window.location` Только для чтения

Получает/устанавливает расположение или текущий URL для текущего объекта окна.

`Window.locationbar` (en-US) Только для чтения

Возвращает объект locationbar, который может быть добавлен и убран из окна.

`Window.localStorage` Только для чтения

Возвращает ссылку на локальный объект хранилища, используемый для хранения данных, которые могут быть доступны только первоисточникам, создавшим их.

`Window.menubar` (en-US) Только для чтения

Возвращает объект menubar, который может быть добавлен и убран из окна.

`Window.messageManager`

Возвращает объект message manager для окна.

`Window.mozAnimationStartTime` Только для чтения

Время в миллисекундах с момента начала цикла данной анимации.

`Window.mozInnerScreenX` (en-US) Только для чтения
Non-standard

Возвращает горизонтальную (X) координату верхнего левого угла окна просмотра в экранных координатах. Значение возвращается в CSS-пикселях. Смотри `mozScreenPixelsPerCSSPixel` в `nsIDOMWindowUtils` для конвертирования и адаптирования к экранным пикселям, если необходимо.

`Window.mozInnerScreenY` (en-US) Только для чтения
Non-standard

Возвращает вертикальные (Y) координаты верхнего левого угла окна просмотра в экранных координатах. Значение возвращается в CSS-пикселях. Смотри `mozScreenPixelsPerCSSPixel` для конвертирования и адаптирования к экранным пикселям, если необходимо.

`Window.mozPaintCount` (en-US)
Non-standard
Только для чтения

Возвращает количество раз, за которые текущий документ был отрендерен для текущего экрана в этом окне. Может быть использовано для подсчёта скорости преобразования.

`Window.name`

Получает/устанавливает имя для окна.

`Window.navigator` Только для чтения

Возвращает ссылку на объект навигатора.

`Window.opener` (en-US)

Возвращает ссылку на окно, открывшее текущее окно.

`Window.origin` Только для чтения

Возвращает источник глобального объекта в виде строки.

`Window.orientation` (en-US)
Non-standard

Устарело
Только для чтения

Возвращает ориентировку в градусах (с увеличением на 90 градусов) окна просмотра относительно настоящей ориентировки устройства.

`Window.outerHeight` (en-US) Только для чтения

Получает высоту вместе с внешней частью браузерного окна.

`Window.outerWidth` (en-US) Только для чтения

Получает ширину вместе с внешней частью браузерного окна.

`Window.pageXOffset` Только для чтения

Псевдоним для `window.scrollX`.

`Window.pageYOffset`Только для чтения

Псевдоним для `window.scrollY`

`Window.sessionStorage` Только для чтения

Возвращает ссылку на объект хранения сессии, используемый для хранения данных, которые могут быть получены только источником, создавшим их.

`Window.parent` Только для чтения

Возвращает ссылку на родителя текущего окна или встроенного фрейма.

`Window.performance` Только для чтения

Обеспечивает главенствующее пространство для атрибутов, относящихся к производительности (en-US).

`Window.personalbar` (en-US) Только для чтения

Возвращает объект personalbar, который может быть добавлен и убран из окна.

`Window.pkcs11`

Раньше предоставлял доступ к установке и удалению PKCS11 модуля.

`Window.returnValue`

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

`Window.screen` Только для чтения

Возвращает ссылку на объект экрана, ассоциируемый с окном.

`Window.screenX` Только для чтения

Возвращает горизонтальный размер левой рамки браузера пользователя с левой стороны экрана.

`Window.screenY` (en-US) Только для чтения

Возвращает вертикальный размер верхней рамки браузера пользователя с верхней стороны экрана.

`Window.scrollbars` (en-US) Только для чтения

Возвращает объект scrollbars, который может быть добавлен и убран из окна.

`Window.scrollMaxX`
Non-standard
Только для чтения

Максимальный отступ, на который может быть проскроллено окно по горизонтали, состоящее из разницы ширины документа и ширины области просмотра.

`Window.scrollMaxY`
Non-standard
Только для чтения

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

`Window.scrollX` Только для чтения

Возвращает число пикселей, на которое документ уже был проскроллен по горизонтали.

`Window.scrollY` Только для чтения

Возвращает число пикселей, на которое документ уже был проскроллен по вертикали.

`Window.self` Только для чтения

Возвращает ссылку на самого себя.

`Window.sessionStorage`

Возвращает объект хранилища для данных в пределах сессии одной страницы.

`Window.sidebar` (en-US)
Non-standard
Только для чтения

Возвращает ссылку на объект окна sidebar.

`Window.speechSynthesis` (en-US) Только для чтения

Возвращает объект `SpeechSynthesis` (en-US), который является точкой входа для использования Web Speech API, функциональности для речевого синтеза.

`Window.status` (en-US)

Получает/устанавливает текст в statusbar внизу браузера.

`Window.statusbar` (en-US) Только для чтения

Возвращает объект statusbar, который может быть добавлен и убран из окна.

`Window.toolbar` (en-US) Только для чтения

Возвращает объект toolbar, который может быть добавлен и убран из окна.

`Window.top` Только для чтения

Возвращает ссылку на самое первое окно в иерархии текущих окон. Только для чтения.

`Window.window` (en-US) Только для чтения

Возвращает ссылку на текущее окно.

`window[0]`, `window[1]`, etc.

Возвращает ссылку на объект окна во фреймах. Смотри `Window.frames`.

Методы
------

*Этот интерфейс наследует методы от интерфейса `EventTarget`.*

`Window.atob()`

Декодирует строку данных, которая была закодирована, используя кодировку base-64.

`Window.alert()`

Отображает предупреждающее диалоговое окно.

`Window.back()` (en-US)
Non-standard

Возвращается на один шаг назад в истории окна.

`Window.blur()`

Убирает фокус с окна.

`Window.btoa()`

Создать закодированную base-64 ASCII строку из строки бинарных данных.

`Window.cancelIdleCallback()` (en-US)
Экспериментальная возможность

Позволяет отменить колбэк-функцию прежде чем определить расписание её вызова с `Window.requestIdleCallback`.

`Window.clearInterval()` (en-US)

Отменяет повторяющееся исполнение, установленного с помощью `setInterval()`.

`Window.clearTimeout()`

Отменяет отложенное исполнение, установленного с `setTimeout()`.

`Window.captureEvents()` (en-US)
Устарело

Регистрирует окно, которое будет перехватывать все события определённого типа.

`Window.clearImmediate()`

Отменяет повторяющееся исполнение, установленное с помощью `setImmediate`.

`WindowTimers.clearInterval()` (en-US)

Отменяет повторяющееся исполнение, установленное с помощью `WindowTimers.setInterval()` (en-US).

`WindowTimers.clearTimeout()` (en-US)

Отменяет повторяющееся исполнение, установленное с помощью `WindowTimers.setTimeout()`.

`Window.close()`

Закрывает текущее окно.

`Window.confirm()`

Отображает диалог с сообщением, на которое пользователь должен ответить.

`Window.createImageBitmap()` (en-US)

Принимает множество различных изображений и возвращает `Promise` (en-US), который возвращает `ImageBitmap`. Опционально ресурс может быть обрезан до прямоугольника, заданного в пикселях *(sx, sy)* с шириной sw и высотой sh.

`Window.disableExternalCapture()`
{{todo("NeedsContents")}}
`Window.dispatchEvent()`

Используется для вызова события.

`Window.dump()` (en-US)

Отправляет сообщение в консоль.

`Window.fetch()`

Начинает процесс загрузки ресурса из сети.

`Window.enableExternalCapture()`
{{todo("NeedsContents")}}
`Window.find()` (en-US)

Ищет необходимую строку в окне window.

`Window.focus()` (en-US)

Устанавливает фокус на текущем окне.

`Window.forward()` (en-US)
Non-standard

Переходит на один документ вперёд в текущей истории окна.

`Window.getAttention()`

Заставляет мигать иконку приложения.

`Window.getAttentionWithCycleCount()`
{{todo("NeedsContents")}}
`Window.getComputedStyle()`

Получает подсчитанные стили для определённого элемента. Подсчитанные стили включают подсчитанные значения всех CSS-свойств элемента.

`Window.getDefaulComputedStyle()`

Получает подсчитанные стили по умолчанию для определённого элемента, игнорируя авторские стили.

`Window.getSelection()`

Возвращает выбранный объект, представляющий выбранный элемент(ы).

`Window.home()`
Non-standard

Возвращает браузер на домашнюю страницу.

`Window.matchMedia()`

Возвращает объект `MediaQueryList` (en-US), представляющий указанную строку медиавыражения.

`Window.maximize()`
{{todo("NeedsContents")}}
`Window.minimize()` (en-US) (top-level XUL windows only)

Минимизирует окно.

`Window.moveBy()`

Сдвигает текущее окно на определённое значение.

`Window.moveTo()`

Сдвигает окно до определённых координат.

`Window.mozRequestAnimationFrame()` (en-US)

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

`Window.open()` (en-US)

Открывает новое окно.

`Window.openDialog()` (en-US)

Opens a new dialog window.

`Window.postMessage()`

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

`Window.print()`

Открывает Print Dialog для распечатки текущего документа.

`Window.prompt()`

Возвращает текст, введённый пользователем в диалоге подсказки.

`Window.releaseEvents()` (en-US)
Устарело

Возвращает окно с захваченных событий определённого типа.

`Window.removeEventListener()`

Удаляет обработчик события из окна.

`Window.requestIdleCallback()`
Экспериментальная возможность

Позволяет назначить расписание задачи во время периода простоя браузера.

`Window.resizeBy()` (en-US)

Меняет размер текущего окна на определённое число.

`Window.resizeTo()` (en-US)

Динамически меняет размер окна.

`Window.restore()` (en-US)
{{todo("NeedsContents")}}
`Window.routeEvent()`
{{todo("NeedsContents")}}
`Window.scroll()`

Scrolls the window to a particular place in the document.

`Window.scrollBy()`

Прокручивает документ в окна на данное число.

`Window.scrollByLines()`

Прокручивает документ на данное число строк.

`Window.scrollByPages()` (en-US)

Прокручивает документ на данное число страниц.

`Window.scrollTo()`

Прокручивает до заданных координат в документе.

`Window.setInterval()`

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

`Window.setTimeout()`

Устанавливает расписание для исполнения функции в назначенное время.

`Window.setCursor()`

Меняет курсор для текущего окна.

`Window.setImmediate()` (en-US)

Исполняет функцию после того, как браузер некую тяжёлую задачу.

`WindowTimers.setInterval()` (en-US)

Назначает выполнение функции каждые X миллисекунд.

`Window.setResizable` (en-US)
{{todo("NeedsContents")}}
`WindowTimers.setTimeout()`

Устанавливает отложенное выполнение функции.

`Window.showModalDialog()` (en-US)

Отображает модальный диалог.

`Window.sizeToContent()` (en-US)

Подгоняет размер окна под его содержимое.

`Window.stop()`

Останавливает загрузку страницы.

`Window.updateCommands()` (en-US)

Обновляет состояние команд текущего окна chrome (UI).

Обработчики событий
-------------------

Подписываться на события можно с помощью `addEventListener()` или присваивая обработчик события свойству `oneventname`. В дополнение к событиям, перечисленным ниже, события могут всплывать из `Document` глобального объекта.

`GlobalEventHandlers.onabort` (en-US)

Обработчик события для отмены событий в окне.

`WindowEventHandlers.onafterprint`

Вызывается, когда закрывается диалоговое окно распечатки. Смотри событие `afterprint (en-US)`.

`WindowEventHandlers.onbeforeprint` (en-US)

Вызывается, когда открывается диалоговое окно распечатки. Смотри событие `beforeprint (en-US)`.

`Window.onbeforeinstallprompt` (en-US)

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

`WindowEventHandlers.onbeforeunload` (en-US)

Событие вызывается перед удалением события из окна.

`GlobalEventHandlers.onblur`

Свойство обработчика событий для исчезновение фокуса на окне.

`GlobalEventHandlers.onchange`

Свойство обработчика событий для изменения в окне.

`GlobalEventHandlers.onclick`

Свойство обработчика событий для клика в окне.

`GlobalEventHandlers.ondblclick` (en-US)

Вызывается, когда был сделан двойной клик ЛЮБОЙ кнопкой мыши.

`GlobalEventHandlers.onclose`

Свойство обработчика событий для обработки закрытия окна.

`GlobalEventHandlers.oncontextmenu`

Свойство обработчика событий для правого клика в окне.

`Window.ondevicelight`

Свойство обработчика событий для отслеживания изменения уровня света.

`Window.ondevicemotion` (en-US)

Вызывается, если было определено изменение акселерометра (для мобильных устройств).

`Window.ondeviceorientation` (en-US)

Вызывается, когда была изменена ориентация (для мобильных устройств).

`Window.ondeviceorientation` (en-US)

Свойство обработчика событий для смены ориентации любого устройства.

`Window.ondeviceproximity`

Свойство обработчика событий для определения близости устройства.

`GlobalEventHandlers.onerror`

Свойство обработчика событий для события `error (en-US)`, возникшего в окне.

`GlobalEventHandlers.onfocus`

Свойство обработчика событий для события `focus (en-US)` в окне.

`WindowEventHandlers.onhashchange` (en-US)

Свойство обработчика событий для отлова изменения хэша в окне; вызывается, когда часть URL после ("#") была изменена.

`Window.onappinstalled` (en-US)

Вызывается, когда страница установлена, как приложение. Смотри `appinstalled` событие.

`Window.oninput` (en-US)

Вызывается, когда значение элемента <input> было изменено.

`GlobalEventHandlers.onkeydown` (en-US)

Свойство обработчика событий для события `keydown (en-US)` в окне.

`GlobalEventHandlers.onkeypress` (en-US)

Свойство обработчика событий для события `keypress (en-US)` в окне.

`GlobalEventHandlers.onkeyup` (en-US)

Свойство обработчика событий для события `keyup (en-US)` в окне.

`WindowEventHandlers.onlanguagechange` (en-US)

Свойство обработчика событий для события `languagechange (en-US)` в окне.

`GlobalEventHandlers.onload` (en-US)

Свойство обработчика событий для загрузки окна.

`WindowEventHandlers.onmessage` (en-US)

`event handler`, представляющий собой код, который будет вызван, когда произойдёт событие `message`.

`GlobalEventHandlers.onmousedown` (en-US)

Свойство обработчика событий для события mousedown в окне.

`GlobalEventHandlers.onmousemove` (en-US)

Свойство обработчика событий для события mousemove в окне.

`GlobalEventHandlers.onmouseout` (en-US)

Свойство обработчика событий для события mouseout в окне.

`GlobalEventHandlers.onmouseover` (en-US)

Свойство обработчика событий для события mouseover в окне.

`GlobalEventHandlers.onmouseup` (en-US)

Свойство обработчика событий для события mouseup в окне.

`Window.onmozbeforepaint`

Свойство обработчика событий для события `MozBeforePaint`, которое присылается прежде чем окно будет перерисовано, если событие необходимо из-за вызова метода `Window.mozRequestAnimationFrame()` (en-US).

`WindowEventHandlers.onoffline`

Вызывается, когда было потеряно соединение с сетью. Смотри событие `offline (en-US)`.

`WindowEventHandlers.ononline`

Вызывается, когда соединение с сетью было установлено. Смотри событие `online (en-US)`.

`WindowEventHandlers.onpageshow`

Свойство обработчика событий для события pageshow в окне.

`WindowEventHandlers.onpagehide`

Свойство обработчика событий для события pagehide в окне.

`Window.onpaint`

Свойство обработчика событий для события paint в окне.

`WindowEventHandlers.onpopstate` (en-US)

Вызывается, когда была нажата кнопка назад.

`Window.onrejectionhandled` (en-US)
Экспериментальная возможность

Свойство обработчика событий для обработки отказа события `Promise`.

`GlobalEventHandlers.onreset` (en-US)

Свойство обработчика событий для события reset в окне.

`GlobalEventHandlers.onresize` (en-US)

Свойство обработчика событий для изменения размера окна.

`GlobalEventHandlers.onscroll`

Свойство обработчика событий для прокрутки окна.

`GlobalEventHandlers.onwheel` (en-US)

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

`GlobalEventHandlers.onselect`

Свойство обработчика событий для события выбора в окне.

`GlobalEventHandlers.onselectionchange` (en-US)

`event handler`, представляющий собой код, который будет вызван, когда произойдёт событие `selectionchange`.

`GlobalEventHandlers.onsubmit`

Свойство обработчика событий для события submits в окне формы.

`WindowEventHandlers.onunhandledrejection` (en-US)
Экспериментальная возможность

Свойство обработчика событий для отвязки обработчика отказа события `Promise`.

`Window.onunload` (en-US)

Свойство обработчика событий для события unload в окне.

`Window.onuserproximity`

Свойство обработчика событий для события изменения близости пользователя к устройству.

`Window.onvrdisplayconnected` (en-US)
Экспериментальная возможность

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

`Window.onvrdisplaydisconnected` (en-US)
Экспериментальная возможность

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

`Window.onvrdisplaypresentchange` (en-US)
Экспериментальная возможность

Представляет обработчик события, который будет запущен, когда изменится состояние устройства виртуальной реальности — т.е. перейдёт от представленного к непредставленному или наоборот (когда будет запущено событие `onvrdisplaypresentchange`).

Конструкторы
------------

Смотрите также DOM Interfaces.

`Window.ConstantSourceNode`

Создаёт экземпляр `ConstantSourceNode` (en-US)

`Window.DOMParser`
{{todo("NeedsContents")}}
`Window.GeckoActiveXObject`
{{todo("NeedsContents")}}
`Image` (en-US)

Создаёт `HTMLImageElement`.

`Option` (en-US)

Создаёт `HTMLOptionElement` (en-US)

`Window.QueryInterface`
{{todo("NeedsContents")}}
`Window.XMLSerializer`
{{todo("NeedsContents")}}
`Worker`

Используется для создания Web worker

`Window.XPCNativeWrapper`
{{todo("NeedsContents")}}
`Window.XPCSafeJSObjectWrapper`
{{todo("NeedsContents")}}
Интерфейс
---------

Смотри DOM Reference

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

* Working with windows in chrome code


HTMLTableElement - Интерфейсы веб API

HTMLTableElement
================

Объекты `table` описывают интерфейс `HTMLTableElement`, который содержит дополнительные свойства и методы (по сравнению с обычным объектным интерфейсом `element` которые также доступны вследствие наследования) для управления внешним видом таблиц HTML.

Свойства
--------

*Наследует свойства от родителя, `HTMLElement`.*

table.caption (en-US)

**caption** возвращает заголовок таблицы.

table.tHead (en-US)

**tHead** возвращает header таблицы.

table.tFoot (en-US)

**tFoot** возвращает footer таблицы.

table.rows (en-US)

**rows** возвращает строки таблицы.

table.tBodies (en-US)

**tBodies** возвращает тела таблицы.

table.align (en-US)

**align** возвращает/устанавливает выравнивание таблицы.

table.bgColor (en-US)

**bgColor** возвращает/устанавливает цвет фона таблицы.

table.border (en-US)

**border** возвращает/устанавливает рамку таблицы.

table.cellPadding (en-US)

**cellPadding** возвращает/устанавливает cellpadding.

table.cellSpacing (en-US)

**cellSpacing** возвращает/устанавливает cellspacing.

table.frame (en-US)

**frame** определяет, какие стороны таблицы имеют рамку.

table.rules (en-US)

**rules** определяет, какие внутренние рамки являются видимыми.

table.summary (en-US)

**summary** возвращает/устанавливает описание таблицы.

table.width (en-US)

**width** возвращает/устанавливает ширину таблицы.

Методы
------

*Наследует методы от своего родителя, `HTMLElement`*.

table.createTHead (en-US)

**createTHead** создаёт header таблицы.

table.deleteTHead (en-US)

**deleteTHead** удаляет header таблицы.

table.createTFoot (en-US)

**createTFoot** создаёт footer таблицы.

table.deleteTFoot (en-US)

**deleteTFoot** удаляет footer таблицы.

table.createCaption (en-US)

**createCaption** создаёт заголовок таблицы.

table.deleteCaption (en-US)

**deleteCaption** удаляет заголовок таблицы.

table.insertRow (en-US)

**insertRow** вставляет строку.

table.deleteRow (en-US)

**deleteRow** удаляет строку.

Спецификации
------------

| Specification |
| --- |
| HTML Standard # htmltableelement |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Элемент HTML, реализующий данный интерфейс: `<table>` (en-US).


BeforeInstallPromptEvent - Интерфейсы веб API

BeforeInstallPromptEvent
========================

Событие **`BeforeInstallPromptEvent`** запускается в обработчике `Window.onbeforeinstallprompt` (en-US) перед тем, как пользователю будет предложено "установить" веб-сайт на главный экран мобильного устройства.Этот интерфейс наследуется от интерфейса `Event`.

Конструктор
-----------

`BeforeInstallPromptEvent()` (en-US)

Создаёт новый **`BeforeInstallPromptEvent`**.

Свойства
--------

*Наследует свойства от своего родителя, `Event`.*

`BeforeInstallPromptEvent.platforms` (en-US) Только для чтения

Возвращает массив элементов `DOMString`, содержащий платформы, на которых было отправлено событие. Это предусмотрено для пользовательских агентов, которые хотят предоставить пользователю выбор версий, таких как, например, «web» или «play», что позволит пользователю выбирать между веб-версией или версией Android.

`BeforeInstallPromptEvent.userChoice` (en-US) Только для чтения

Возвращает `Promise`, которое разрешается в `DOMString`, содержащее либо "accepted" (принято), либо "dismissed" (отклонено).

Методы
------

`BeforeInstallPromptEvent.prompt()`

Позволяет разработчику показывать запрос на установку в любое время по своему выбору. Этот метод возвращает `Promise`.

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

```js
window.addEventListener("beforeinstallprompt", function (e) {
  // Зарегистрируйте платформы, указанные в качестве параметров, в запросе на установку
  console.log(e.platforms); // e.g., ["web", "android", "windows"]
  e.userChoice.then(function (choiceResult) {
    console.log(choiceResult.outcome); // either "accepted" or "dismissed"
  }, handleError);
});
```

Спецификации
------------

#### No specification found

No specification data found for `api.BeforeInstallPromptEvent`.
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.


Глобальная функция atob() - Интерфейсы веб API

Глобальная функция atob()
=========================

Функция **`atob()`** декодирует строку данных, которая была закодирована с использованием base-64. Вы можете использовать метод `btoa()`, чтобы закодировать и передать данные, которые в исходном виде могут вызвать проблемы передачи, затем отправить их и использовать метод `atob()`, чтобы декодировать данные снова. Например, вы можете закодировать, передать и декодировать управляющие символы, такие как ASCII-значения от 0 до 31.

В случаях использования с Unicode или UTF-8 строками, смотрите this note at Base64 encoding and decoding (en-US) и this note at `btoa()` (en-US).

Синтаксис
---------
```

var decodedData = scope.atob(encodedData);
```

### Throws

Выбрасывает `DOMException`, если длина переданной строки не кратна 4.

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

```js
var encodedData = window.btoa("Hello, world"); // кодирует строку
var decodedData = window.atob(encodedData); // декодирует строку
```

Спецификации
------------

| Specification |
| --- |
| HTML Standard # dom-atob-dev |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Base64 encoding and decoding
* `data` URIs (en-US)
* `btoa()`
* Components.utils.importGlobalProperties


HTMLBRElement - Интерфейсы веб API

HTMLBRElement
=============

**`HTMLBRElement`** интерфейс представляющий HTML-элемент линии разрыва (`<br>`). Это унаследовано от `HTMLElement`.

Свойства
--------

*Наследует свойства от его родителя, `HTMLElement`.*

| Имя | Тип | Описание |
| --- | --- | --- |
| `clear` | `DOMString` | Отображает поток текста, вокруг обтекаемого объекта. |

Методы
------

*Нет специфичных методов;* *наследует методы от его родителя, `HTMLElement`*.

Спецификация
------------

| Specification |
| --- |
| HTML Standard # htmlbrelement |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* HTML-элемент реализующий этот интерфейс: `<br>`


CDATASection - Интерфейсы веб API

CDATASection
============

Интерфейс **`CDATASection`** представляет собой раздел CDATA, который может быть использован внутри XML для добавления extended групп "незакавыченного" текста. Символы `<` and `&` не нуждаются в кавычках, как внутри раздела CDATA.

В XML, раздел CDATA выглядит так:
```

<![CDATA[  ... ]]>
```

Например:

```xml
<foo>Here is a CDATA section: <![CDATA[ < > & ]]> with all kinds of unescaped text. </foo>
```

Единственная последовательность (символов), не разрешённая внутри раздела CDATA - это сами символы закрытия раздела CDATA:

```xml
<![CDATA[ ]]> will cause an error   ]]>
```

Заметьте, что разделы CDATA не следует использовать внутри HTML; они работают только в XML.

Свойства
--------

*Этот интерфейс не имеет специфических свойств и наследует родительские свойства `Text`.*

Методы
------

*This interface has no specific methods and наследует родительские методы `Text`.*

Спецификации
------------

| Specification |
| --- |
| DOM Standard # interface-cdatasection |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.


DOMHighResTimeStamp - Интерфейсы веб API

DOMHighResTimeStamp
===================

Тип **`DOMHighResTimeStamp`** является `double` и используется для хранения значения времени в миллисекундах. Этот тип может быть использован для описания конкретной точки во времени или временного промежутка (разницы во времени между двумя конкретными временными точками).

Время, в миллисекундах, скорее всего будет точным до 5 µs (микросекунд) и дробную долю числа будут составлять доли миллисекунды. Тем не менее, если браузер (в силу, к примеру, аппаратных или программных ограничений) не может предоставить значение времени с точностью до 5 µs, он может представить значение как время в миллисекундах с точностью до миллисекунды. Также обратите внимание на секцию внизу об уменьшении точности времени, которое можно указать в настройках браузера дабы избежать атак по времени и сличения информации с помощью цифровых отпечатков.

Кроме того, если устройство или операционная система на который работает user agent не имеет часов, точных до микросекунд, они могут иметь точность до миллисекунды.

Уменьшенная точность времени
----------------------------

Для предоставления защиты от атак по времени и сличения информации с помощью цифровых отпечатков, точность отметок времени может округляться в зависимости от настроек браузера. В Firefox свойство `privacy.reduceTimerPrecision` включено по умолчанию и имеет значение 20 µs в Firefox 59; в 60 оно уже имеет значение 2ms.

```js
// уменьшенная точность времени (2ms) в Firefox 60
event.timeStamp;
// 1519211809934
// 1519211810362
// 1519211811670
// ...

// уменьшенная точность времени с включённым `privacy.resistFingerprinting`
event.timeStamp;
// 1519129853500
// 1519129858900
// 1519129864400
// ...
```

В Firefox, вы также можете включить `privacy.resistFingerprinting`, точность будет 100ms или значением `privacy.resistFingerprinting.reduceTimerPrecision.microseconds`, в зависимости от того, какое из них больше.

Свойства
--------

*У этого типа нет свойств. Это число двойной точности с плавающей запятой.*

### Значение

Значение `DOMHighResTimeStamp` является числом двойной точности с плавающей запятой, которое описывает количество миллисекунд (с точностью до 5 микросекунд, если устройство это поддерживает), прошедших между двумя точками во времени. Начальное время может быть либо определённым временем, определённым скриптом или приложением, или **временем возникновения**.

#### Время возникновения

**Время возникновения** — стандартное время, которое считается началом существования текущего документа. Оно считается следующим образом:

* Если global object скрипта - `Window`, время возникновения определяется следующим образом:
    + Если текущий `Document` - первый загруженный в `Window`, время возникновения - время, когда был создан контекст браузера.
    + Если во время выгрузки предыдущего документа, который был загружен в окне, пользователю было показано диалоговое окно, в котором он должен был подтвердить покинет он предыдущую страницу или нет, время возникновения это время когда пользователь подтвердить что он желает перейти на новую страницу.
    + Если ни один из вышеописанных пунктов не определяет время возникновения, тогда время возникновения это время, когда переход, который результировал в создании текущего `Document` имел место.
* Если глобальный объект скрипта — `WorkerGlobalScope` (en-US) (то есть скрипт, запущенный как Web Worker), время возникновения - момент создания Worker-а.
* Во всех остальных случаях время возникновения - undefined.
Методы
------

*У этого типа нет методов.*

Спецификации
------------

#### No specification found

No specification data found for `api.DOMHighResTimestamp`.
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Navigation Timing API (en-US)
* performance.now()


PushManager - Интерфейсы веб API

PushManager
===========

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

Интерфейс `PushManager` из Push API предоставляет возможность получать уведомления от сторонних серверов, а также запрашивать URL для push уведомлений.

Этот интерфейс доступен через свойство `ServiceWorkerRegistration.pushManager`.

**Примечание:** Этот интерфейс заменил функциональность, предлагаемую устаревшим `PushRegistrationManager`.

Свойства
--------

`PushManager.supportedContentEncodings` (en-US)

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

Методы
------

`PushManager.subscribe()`

Подписка на пуш сервис. Возвращает промис, который разрешается в `PushSubscription` (en-US) объект, содержащий детали новой push подписки.

`PushManager.getSubscription()` (en-US)

Извлекает существующую push подписку. Возвращает промис, который разрешается в `PushSubscription` (en-US) объект, содержащий детали существующей подписки.

`PushManager.permissionState()` (en-US)

Возвращает `Promise`, который разрешается в состояние доступа текущего `PushManager`, которое может быть одним из `'granted'`, `'denied'`, или `'default'`.

### Устаревшие методы

`PushManager.hasPermission()` (en-US)

Returns a `Promise` that resolves to the `PushPermissionStatus` of the requesting webapp, which will be one of `granted`, `denied`, or `default`. Replaced by `PushManager.permissionState()` (en-US).

`PushManager.register()` (en-US)

Subscribes to a push subscription. Replaced by `PushManager.subscribe()`.

`PushManager.registrations()` (en-US)

Retrieves existing push subscriptions. Replaced by `PushManager.getSubscription()` (en-US).

`PushManager.unregister()` (en-US)

Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is can be unregistered via the `PushSubscription.unsubscribe()` (en-US) method.

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

```js
this.onpush = function (event) {
  console.log(event.data);
  // From here we can write the data to IndexedDB, send it to any open
  // windows, display a notification, etc.
};

navigator.serviceWorker
  .register("serviceworker.js")
  .then(function (serviceWorkerRegistration) {
    serviceWorkerRegistration.pushManager.subscribe().then(
      function (pushSubscription) {
        console.log(pushSubscription.subscriptionId);
        console.log(pushSubscription.endpoint);
        // The push subscription details needed by the application
        // server are now available, and can be sent to it using,
        // for example, an XMLHttpRequest.
      },
      function (error) {
        // During development it often helps to log errors to the
        // console. In a production environment it might make sense to
        // also report information about errors back to the
        // application server.
        console.log(error);
      },
    );
  });
```

Спецификации
------------

| Specification |
| --- |
| Push API # pushmanager-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Использование Push API (en-US)
* Push сообщения в Open Web, Matt Gaunt


Window.crypto - Интерфейсы веб API

Window.crypto
=============

`Window.crypto` даёт доступ к интерфейсу `Crypto`. Этот интерфейс предоставляет веб-странице доступ к встроенным в браузер возможностям криптографии.

Синтаксис
---------
```

var cryptoObj = window.crypto || window.msCrypto; // для IE 11
```

Спецификации
------------

| Specification |
| --- |
| Web Cryptography API # dom-windoworworkerglobalscope-crypto |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* глобальный объект `Window`


WindowBase64.btoa() - Интерфейсы веб API

WindowBase64.btoa()
===================

Создаёт ASCII строку закодированную в base-64 из "строки" бинарных данных.

Будьте внимательней этот способ не подходит для Unicode строк! Описание работы с Unicode в секции ниже.

Синтаксис
---------
```

var encodedData = window.btoa(stringToEncode);
```

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

```js
var encodedData = window.btoa("Hello, world"); // encode a string
var decodedData = window.atob(encodedData); // decode the string
```

Замечания
---------

Вы можете воспользоваться этим способом, чтобы избежать проблем при передаче данных через сетевое соединение. Для этого нужно перекодировать данные в base64 и отправить их, и на другой стороне с помощью метода ``window.atob()` (en-US)` декодировать полученные данные в исходный вид. Например, вы можете перекодировать управляющие символы ASCII с 0 до 31.

`btoa()` также доступна для XPCOM компонентов реализованных в JavaScript, даже если `window` (en-US) не является глобальным объектом в компонентах.

Строки Юникод
-------------

В большинстве браузеров, вызов `window.btoa()` на Unicode строке выбросит исключение Character Out Of Range (Символ вне допустимого диапазона).

Чтобы избежать этого, воспользуйтесь паттерном, предложенным Johan Sundström:

```js
function utf8\_to\_b64(str) {
  return window.btoa(unescape(encodeURIComponent(str)));
}

function b64\_to\_utf8(str) {
  return decodeURIComponent(escape(window.atob(str)));
}

// Usage:
utf8\_to\_b64("✓ à la mode"); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
b64\_to\_utf8("JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=="); // "✓ à la mode"

utf8\_to\_b64("I \u2661 Unicode!"); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
b64\_to\_utf8("SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=="); // "I ♡ Unicode!"
```

Более правильный и производительный способ - это конвертировать `DOMString` в UTF-8 строку передав typed arrays. Как это сделать узнать можно здесь **в этом параграфе (en-US)**.

Спецификации
------------

| Specification |
| --- |
| HTML Standard # dom-btoa-dev |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Base64 encoding and decoding
* `data` URIs (en-US)
* `window.atob()` (en-US)
* Components.utils.importGlobalProperties


Web Animations API - Интерфейсы веб API

Web Animations API
==================

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

API веб-анимации позволяет синхронизировать и сроки изменения представления веб-страницы, то есть анимации элементов DOM. Она делает это путём объединения двух моделей: Модель синхронизации и анимации модели.

Основные понятия и использование API
------------------------------------

Web Animations API (API веб-анимации) обеспечивает общий язык для браузеров и разработчиков для описания анимации элементов DOM. Для более подробной информации о концепциях, заложенных в API, и о его использовании, прочтите статью Использование Web Animations API.

Интерфейсы веб-анимации
-----------------------

`Animation`

Обеспечивает элементы управления воспроизведением и временную шкалу для узла анимации или источника. Можно взять объект, созданный с помощью `KeyframeEffect()` конструктор.

`KeyframeEffect` (en-US)

Описывает наборы анимируемых свойств и значений, называемых **ключевыми кадрами** и их параметры синхронизации (en-US). Они могут затем быть воспроизведены с помощью  `Animation()` (en-US) конструктор.

`AnimationTimeline` (en-US)

Представляет график анимации. Этот интерфейс существует, чтобы определить особенности временной шкалы (наследуемые интерфейсом `DocumentTimeline` (en-US) и другими интерфейсами в будущем) и не предназначен для непосредственного использования разработчиками.

`DocumentTimeline` (en-US)

Представляет временные рамки анимации, в том числе временные рамки анимации по умолчанию для документа (через свойство `Document.timeline` (en-US)).

`AnimationEffectTiming`

Объект, содержащий временные свойства, возвращённые `сроки` атрибут `KeyframeEffect` (en-US). Он наследует свои свойства от `AnimationEffectTimingReadOnly`, но в не только чтение формы.

`SharedKeyframeList`

Представляет собой последовательность ключевых кадров , которые могут быть разделены между `KeyframeEffect` (en-US) объектов. Используя `SharedKeyframeList` объекты, несколько `KeyframeEffect` объектов могут повторно использовать одни и те же ключевые кадры , не заплатив стоимость разбора их несколько раз.

`AnimationEffectTimingProperties` (en-US)

`Element.animate()`, `KeyframeEffectReadOnly.KeyframeEffectReadOnly()` (en-US) и `KeyframeEffect.KeyframeEffect()` все принимают необязательный словарь объект синхронизации свойств.

Расширения для других интерфейсов
---------------------------------

API веб - анимации добавляет некоторые новые функции в **`документ`** и **`элемент`.**

### Расширения `Document` интерфейса

`document.timeline` (en-US)

`DocumentTimeline` Объект , представляющий документ по умолчанию временную шкалу.

`document.getAnimations()` (en-US)

Возвращает массив `Анимация` объектов в настоящее время действуют на элементах в `document`.

### Расширения `Element` интерфейса

`Element.animate()`

Способ быстрого доступа для создания и воспроизведения анимации на элементе. Она возвращает созданный `Анимация` экземпляра объекта.

Веб-анимация для чтения только интерфейсы
-----------------------------------------

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

`AnimationEffectTimingReadOnly`

Словарь объект временных свойств, которые наследуются изменяемом `AnimationEffectTiming` интерфейс, связанный с `KeyframeEffect` (en-US).

`AnimationEffectReadOnly` (en-US)

Определяет текущие и будущие "Анимационные эффекты" , как `KeyframeEffect` (en-US), который может быть передан `Анимация` объектов для воспроизведения, и `KeyframeEffectReadOnly` (en-US) который используется `KeyframeEffect` (en-US) (наследуется CSS Animations и Transitions (en-US) ). Все значения `Animation.effect` (en-US) имеют типов на основе `AnimationEffectReadOnly`.

`KeyframeEffectReadOnly` (en-US)

Описывает наборы Animatable свойств и значений, которые могут быть воспроизведены с помощью `анимация()` (en-US) конструктор, и которые унаследованы `KeyframeEffect` (en-US).

Спецификации
------------

| Specification |
| --- |
| Web Animations  |

Совместимость с браузерами
--------------------------

{{Compat}}Смотрите также
--------------

* Использование веб-API Animations
* Web демки Анимации
* Polyfill
* Текущая реализация браузера Firefox: AreWeAnimatedYet
* Тест Поддержка браузеров


URL - Интерфейсы веб API

URL
===

Интерфейс **`URL`** используется для разбора, создания, нормализации и кодирования URL-адресов. Он предоставляет свойства, которые позволяют легко читать и изменять части URL-адреса.

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

В случае, когда браузер не поддерживает `URL()` конструктор, вы можете получить доступ к объекту URL через `URL` свойство интерфейса `Window`. Проверьте, не нуждается ли какой-либо из ваших целевых браузеров в этом префиксе.

**Примечание:** Эта возможность доступна в Web Workers

Конструктор
-----------

`new URL()`

Создаёт и возвращает объект URL из указанного абсолютного адреса или пути и базового адреса.

Свойства
--------

`hash`

Строка типа `USVString` (en-US). Содержит идентификатор фрагмента и символ `'#'` в начале строки.

`host` (en-US)

Строка типа `USVString` (en-US). Содержит доменное имя (*hostname*) за которым следует (если был указан порт) символ `':'` и номер порта.

`hostname` (en-US)

Строка типа `USVString` (en-US). Содержит доменное имя.

`href` (en-US)

Строка типа `USVString` (en-US). Содержит полный URL-адрес.

`origin` (en-US) Только для чтения

Строка типа `USVString` (en-US). Содержит схему (протокол), доменное имя и номера порта.

`password` (en-US)

Строка типа `USVString` (en-US). Содержит пароль, указанный перед доменным именем.

`pathname` (en-US)

Строка типа `USVString` (en-US). Содержит относительный пусть и символ `'/'` в начале строки. Параметры запроса и идентификатор фрагмента не входят в эту строку.

`port` (en-US)

Строка типа `USVString` (en-US). Содержит номер порта.

`protocol` (en-US)

Строка типа `USVString` (en-US). Содержит название протокола и символ `':'` на конце.

`search` (en-US)

Строка типа `USVString` (en-US). Содержит параметры запроса. Включает в себя все параметры, которые были указаны и начинается с символа `'?'`.

`searchParams` (en-US) Только для чтения

Объект `URLSearchParams`. Позволяет получить доступ к каждому параметру запроса по отдельности.

`username` (en-US)

Строка типа `USVString` (en-US). Содержит имя пользователя указанное перед именем домена.

Методы
------

`toString()` (en-US)

Возвращает строку типа `USVString` (en-US), содержащую полный URL-адрес. Возвращаемое значение аналогично значению свойства `URL.href` (en-US). Разница лишь в том, что при помощи этого метода нельзя изменить значение URL-адреса.

`toJSON()` (en-US)

Возвращает строку типа `USVString` (en-US), содержащую полный URL-адрес. Возвращаемое значение аналогично значению свойства `URL.href` (en-US).

Статические методы
------------------

`createObjectURL()`

Возвращает строку типа `DOMString`, содержащую уникальный URL-адрес `Blob` объекта. Этот адрес предоставляет из себя строку с `blob:` в качестве схемы, за которой идёт строка однозначно идентифицирующая `Blob` объект в браузере.

`revokeObjectURL()` (en-US)

Отменяет URL созданный при помощи `URL.createObjectURL()`.

Примечания по использованию
---------------------------

Конструктор принимает один обязательный параметр — `url` и один необязательный параметр — `base`, который будет использован в качестве «основы», если параметр `url` это относительный URL-адрес:

```js
const url = new URL("../cats", "http://www.example.com/dogs");
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"</pre>
```

Вы можете задавать значения свойствам объекта URL, чтобы изменять URL-адрес:

```js
url.hash = "tabby";
console.log(url.href); // "http://www.example.com/cats#tabby"
```

URL-адреса кодируются согласно стандарту RFC 3986. Например:

```js
url.pathname = "démonstration.html";
console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"
```

Интерфейс `URLSearchParams` можно использовать для работы с параметрами запроса.

Например, следующим образом можно получить параметры запроса URL-адреса текущей веб-страницы:

```js
// https://some.site/?id=123
const parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // "123"
```

Метод `toString()` (en-US) лишь возвращает значение свойства `href` (en-US). Благодаря этому, конструктор `URL` можно использовать для нормализации и кодирования URL-адреса.

```js
const response = await fetch(
  new URL("http://www.example.com/démonstration.html"),
);
```

Спецификации
------------

| Specification |
| --- |
| URL Standard # url |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Полифил для `URL` доступен в core-js
* URL API (en-US)
* Что такое URL-адрес?
* Свойство для получения объекта `URL`: `URL`.
* `URLSearchParams`.


StyleSheet - Интерфейсы веб API

StyleSheet
==========

 Объектная модель CSS
Объект, реализующий интерфейс `StyleSheet`, представляет отдельную таблицу стилей. Таблица стилей CSS далее будет представлена более специализированным интерфейсом `CSSStyleSheet`.

Свойства
--------

`StyleSheet.disabled`

Свойство имеет тип `Boolean` (en-US), принимающий одно из двух значений и определяющий, применяется или нет текущая таблица стилей.

`StyleSheet.href` (en-US) Только для чтения

Свойство возвращает строку `DOMString`, указывающую расположение таблицы стилей. Свойство не изменяется.

`StyleSheet.media` (en-US) Только для чтения

Свойство содержит список медиа-установок`MediaList` (en-US) таблицы стилей и определяет медиа-устройства, для отображения на которых предназначена данная таблица. Свойство не изменяется.

`StyleSheet.ownerNode` (en-US) Только для чтения

Свойство возвращает ссылку на объект (узел)`Node`, ссылающийся на данную таблицу стилей текущего документа. Свойство не изменяется.

`StyleSheet.parentStyleSheet` (en-US) Только для чтения

Свойство возвращает ссылку на родительскую таблицу стилей `StyleSheet`, включающую данную таблицу стилей; если таковой нет, возвращает значение `null`. Свойство не изменяется.

`StyleSheet.title` (en-US) Только для чтения

Свойство возвращает строку `DOMString`, указывающую на заголовок текущей таблицы стилей. Свойство не изменяется.

`StyleSheet.type` (en-US)Только для чтения

Свойство возвращает строку `DOMString`, указывающую на язык, используемый таблицей стилей. Свойство не изменяется.

Спецификации
------------

| Specification |
| --- |
| CSS Object Model (CSSOM) # the-stylesheet-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `CSSStyleSheet`


MutationObserver - Интерфейсы веб API

MutationObserver
================

`MutationObserver` предоставляет возможность получать уведомления об изменении определённых DOM (en-US)-элементов. `MutationObserver` является заменой Mutation Events, определённой в спецификации DOM3 Events.

Конструктор
-----------

`MutationObserver()` (en-US)

Создаёт и возвращает новый `MutationObserver`, который вызовет определённую колбэк-функцию при изменении в DOM.

Параметры
---------

`callback`

Вызывается при каждом изменении DOM-элемента. Наблюдатель вызывает данную функцию с двумя аргументами. Первым аргументом является массив объектов MutationRecord (en-US), вторым аргументом является экземпляр `MutationObserver.`

Методы экземпляра
-----------------

`disconnect()` (en-US)

Прекращает получение уведомлений об изменении DOM-элемента экземпляром `MutationObserver`, до того момента пока не будет вызван метод observe().

`observe()` (en-US)

Подписывает экземпляр `MutationObserver` на получение уведомлений о манипуляциях с DOM-элементом.

`takeRecords()` (en-US)

Возвращает текущий `Array` очереди экземпляра `MutationObserver`, затем очищает её.

`MutationObserverInit`
----------------------

`MutationObserverInit` — объект, который может содержать следующие свойства:

**Примечание:** Так или иначе необходимо установить `true` для одного из следующих свойств: `childList`, `attributes`, `characterData`. В противном случае будет вызвана ошибка "An invalid or illegal string was specified"

| Property | Description |
| --- | --- |
| `childList` | true, если необходимо наблюдать за добавлением или удалением дочерних элементов (Включая текстовые узлы (text nodes)) |
| `attributes` | true, если необходимо наблюдать за изменениями атрибутов целевого элемента. |
| `characterData` | true, если необходимо наблюдать за изменениями значения текстового содержимого целевого узла (текстовых узлов дочернего элемента). |
| `subtree` | true, если необходимо наблюдать за потомками целевого элемента. |
| `attributeOldValue` | true, если необходимо возвращать предыдущее значение атрибута. |
| `characterDataOldValue` | true, если необходимо возвращать предыдущее значение Data атрибута. |
| `attributeFilter` | Устанавливает массив названий атрибутов (без указания пространства имён), если требуется наблюдать за изменениями конкретных атрибутов. |

Mutation Observer & customize resize event listener & demo
----------------------------------------------------------

https://codepen.io/webgeeker/full/YjrZgg/

Пример использования
--------------------

Приведённый ниже пример взят из этого блога.

```js
// Выбираем целевой элемент
var target = document.getElementById("some-id");

// Конфигурация observer (за какими изменениями наблюдать)
const config = {
  attributes: true,
  childList: true,
  subtree: true,
};

// Колбэк-функция при срабатывании мутации
const callback = function (mutationsList, observer) {
  for (let mutation of mutationsList) {
    if (mutation.type === "childList") {
      console.log("A child node has been added or removed.");
    } else if (mutation.type === "attributes") {
      console.log("The " + mutation.attributeName + " attribute was modified.");
    }
  }
};

// Создаём экземпляр наблюдателя с указанной функцией колбэка
const observer = new MutationObserver(callback);

// Начинаем наблюдение за настроенными изменениями целевого элемента
observer.observe(target, config);

// Позже можно остановить наблюдение
observer.disconnect();
```

Спецификации
------------

| Specification |
| --- |
| DOM Standard # interface-mutationobserver |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `PerformanceObserver` (en-US)
* `ResizeObserver` (en-US)
* `IntersectionObserver`
* Краткий обзор
* Более детальное обсуждение
* Скринкаст от разработчика Chromium Rafael Weinstein


Coordinates - Интерфейсы веб API

Coordinates
===========

**Secure context:** This feature is available only in secure contexts (en-US) (HTTPS), in some or all supporting browsers.

Интерфейс **`Coordinates`** отображает позицию устройства и его высоту над уровнем моря с расчётным уровнем точности.

Свойства
--------

*Интерфейс `Coordinates` не наследует никаких свойств*.

`Coordinates.latitude` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее широту, выраженную в градусах.

`Coordinates.longitude` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее долготу, выраженную в градусах.

`Coordinates.altitude` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее высоту над уровнем моря, выраженную в метрах. Возвращает `null`, если устройство не может предоставить эти данные.

`Coordinates.accuracy` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее точность свойств `latitude` и `longitude`, выраженную в метрах.

`Coordinates.altitudeAccuracy` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее точность свойства `altitude`, выраженную в метрах. Может быть `null`.

`Coordinates.heading` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее в каком направлении движется устройство. Это значение, выраженное в градусах, показывает насколько отклонено устройство относительно севера. `0` градусов показывает ровно на север и далее направление определяется по часовой стрелке (то есть, `90` градусов означает восток, а `270` градусов означает запад). Если `speed` равно `0`, то `heading` будет `NaN` (en-US). Если устройство не может предоставить `heading`, то его значение будет `null`.

`Coordinates.speed` (en-US) Только для чтения  Secure context

Возвращает `дробное` число, означающее скорость движения устройства, выраженное в метрах в секунду. Это значение может быть `null`.

Методы
------

**Интерфейс `Coordinates` не наследует никаких методов*.*\*\*

Спецификации
------------

| Specification |
| --- |
| Geolocation API # coordinates\_interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Using geolocation (en-US)
* The `Geolocation` interface that uses it.


Notifications API - Интерфейсы веб API

Notifications API
=================

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

Концепция и использование
-------------------------

На поддерживаемых платформах, отображение системных уведомлений обычно включает две вещи. Во-первых, пользователь должен разрешить текущему источнику отображать уведомления, что, как правило, происходит, при первичной загрузке приложения или сайта, используя метод `Notification.requestPermission()` (en-US). Далее будет вызван диалог со следующим текстом:

![](/ru/docs/Web/API/Notifications_API/notification-bubble.png)

Здесь пользователь может выбрать разрешить уведомления от источника, заблокировать их или решить позже. Как только выбор будет сделан, для текущей сессии будут установлены настройки.

**Примечание:** Для Firefox 44, разрешения для Notifications и Push объединяются. Если было установлено разрешение для уведомлений, push так же будут разрешены .

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

**Примечание:** Эта возможность доступна в Web Workers

В дополнение, спецификация Notifications API определить несколько дополнений для ServiceWorker API (en-US), чтобы позволить им отправлять уведомления.

**Примечание:** Чтобы найти больше об использовании уведомлений в вашем приложении, читайте Использование Notifications API (en-US).

Интерфейс уведомлений
---------------------

`Notification`

Определяет объект уведомления.

### Дополнение для Service worker

`ServiceWorkerRegistration`

Включает `ServiceWorkerRegistration.showNotification()` и `ServiceWorkerRegistration.getNotifications()` (en-US) методы для контролирования отображения уведомлений.

`ServiceWorkerGlobalScope` (en-US)

Включает обработчик `ServiceWorkerGlobalScope.onnotificationclick` для вызова встроенных функций, когда был выполнен клик на уведомлении.

`NotificationEvent` (en-US)

Особый тип объекта событий, основанный на `ExtendableEvent` (en-US), который представляет уведомление, которое было вызвано.

Спецификации
------------

| Specification |
| --- |
| Notifications API Living Standard |

Совместимость с браузерами
--------------------------

### api.Notification

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.ServiceWorkerRegistration.showNotification

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.ServiceWorkerRegistration.getNotifications

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Firefox OS разрешения
---------------------

Когда используете уведомления в приложении на Firefox OS, убедитесь, что `desktop-notification` установленно в вашем фаине манифеста. Уведомления могут быть использованы для любомого уровня разрешения, равного или выше:

```json
"permissions": {
  "desktop-notification": {}
}
```

See also
--------

* Использование Notifications API (en-US)


DOMTokenList - Интерфейсы веб API

DOMTokenList
============

**DOMTokenList** интерфейс представляет собой набор разделённых пробелами токенов. Такой набор возвращается от `Element.classList`, `HTMLLinkElement.relList` (en-US), `HTMLAnchorElement.relList` (en-US), `HTMLAreaElement.relList` (en-US), `HTMLIframeElement.sandbox`, или `HTMLOutputElement.htmlFor`. Он в начале индексируется 0 как в объектах JavaScript. DOMTokenList всегда чувствителен к регистру.

Свойства
--------

`DOMTokenList.length` (en-US) Только для чтения

- целое число, которое представляет собой число объектов хранящееся в объекте

`DOMTokenList.value` (en-US)

Список значений `DOMString`.

Методы
------

`DOMTokenList.item()` (en-US)

Возвращает элемент из списка по индексу (возвращает `undefined` если число больше или равно длине списка).

`DOMTokenList.contains()` (en-US)

Возвращает `true` если список содержит отданный *токен*, иначе `false`.

`DOMTokenList.add()` (en-US)

Добавляет отданный *токен* в список.

`DOMTokenList.remove()` (en-US)

Удаляет указанный *токен* из списка.

`DOMTokenList.replace()`

Заменяет существующий *токен* новым.

`DOMTokenList.supports()` (en-US)

Возвращает `true` если отданный *токен* поддерживается токенами в связанном атрибуте

`DOMTokenList.toggle()` (en-US)

`Удаляет отданный токен из списка и возвращает false`. Если *токена* не существует, то он добавляется и функция возвращает `true`.

`DOMTokenList.entries()` (en-US)

Возвращает `iterator` позволяя пройтись по всем парам ключ/значение хранящимся в объекте.

`DOMTokenList.forEach()` (en-US)

Выполняет предусмотренную функцию к каждому элементу `DOMTokenList`.

`DOMTokenList.keys()` (en-US)

Возвращает `iterator` позволяя пройтись по всем ключам всех пар ключ/значение, хранящихся в объекте.

`DOMTokenList.values()` (en-US)

Возвращает `iterator` позволяя пройтись по всем значениям пар ключ/значение, хранящихся в объектах.

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

В следующем простом примере мы извлекаем список классов установленных в элементе `<p>` как `DOMTokenList` используя `Element.classList`, добавляем класс используя `DOMTokenList.add()` (en-US), затем обновляем `Node.textContent` в элементе `<p>` чтобы уравнять с `DOMTokenList`.

Сперва HTML:

```html
<p class="a b c"></p>
```

Теперь JavaScript:

```js
var para = document.querySelector("p");
var classes = para.classList;
para.classList.add("d");
para.textContent = 'paragraph classList is "' + classes + '"';
```

Результат выглядит так:

Обрезка пробелов и удаление дубликатов
--------------------------------------

Метод, который модифицирует `DOMTokenList` (как `DOMTokenList.add()` (en-US)) автоматически обрезает все излишки Whitespace и удаляет значения дубликатов из списка. Пример:

```html
<span class=" d d e f"></span>
```

```js
var span = document.querySelector("span");
var classes = span.classList;
span.classList.add("x");
span.textContent = 'span classList is "' + classes + '"';
```

Результат выглядит так:

Спецификации
------------

| Specification |
| --- |
| DOM Standard # interface-domtokenlist |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMSettableTokenList` (объект который расширяет `DOMTokenList` с установленным *.value* параметром)


MediaElementAudioSourceNode - Интерфейсы веб API

MediaElementAudioSourceNode
===========================

Интерфейс `MediaElementAudioSourceNode` представляет собой аудио узел `AudioNode`, созданный из HTML5 `<audio>` или `<video>` элемента. Он является источником звука.

`MediaElementSourceNode` не имеет входов, а только один выход, и может быть создан методом `AudioContext.createMediaElementSource`. Количество каналов в выходном сигнале равно числу каналов аудио, на которое ссылается `HTMLMediaElement` используемый для создания узла, или 1, если `HTMLMediaElement` не имеет аудио.

|  |  |
| --- | --- |
| Количество входов | `0` |
| Количество выходов | `1` |
| Количество каналов |
 зависит от содержимого медиа элемента
 `HTMLMediaElement`, переданному методу
 `AudioContext.createMediaElementSource` при
 создании узла.
  |

Свойства
--------

*Наследует свойства родителя,* *`AudioNode`*.

Методы
------

*Наследует методы родителя,* *`AudioNode`*.

Спецификация
------------

| Specification |
| --- |
| Web Audio API # MediaElementAudioSourceNode |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Using the Web Audio API (en-US)


Comment - Интерфейсы веб API

Comment
=======

Интерфейс **`Comment`** представляет собой текстовые записи в разметке; хотя, в основном, они не отображаются, такие комментарии доступны для чтения в исходном коде. Комментарии представляются в HTML и XML как контент, заключённый между '`<!--`' и '`-->`'. В XML, последовательность символов '`--`' может не использоваться в комментариях.

EventTarget

Node

CharacterData

CommentСвойства
--------

*У этого интерфейса нет конкретных свойств, но он наследует свойства родителя `CharacterData`, и частично `Node`.*

Конструктор
-----------

`Comment()` (en-US)
Экспериментальная возможность

Возвращает объект `Comment` с параметрами в качестве его текстового содержимого.

Методы
------

*У этого интерфейса нет конкретных методов, но он наследует методы родителя `CharacterData`, и частично `Node`.*

Спецификации
------------

| Specification |
| --- |
| DOM Standard # interface-comment |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* The DOM interfaces index


ServiceWorkerRegistration - Интерфейсы веб API

ServiceWorkerRegistration
=========================

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

Интерфейс `ServiceWorkerRegistration` ссылается на регистрацию Service Worker. Вы можете зарегистрировать Service Worker, чтобы контролировать одну или несколько страниц на одном домене.

The lifetime of a service worker registration is beyond that of the `ServiceWorkerRegistration` objects that represent them within the lifetime of their corresponding service worker clients. The browser maintains a persistent list of active `ServiceWorkerRegistration` objects.

**Примечание:** Эта функция доступна в Web Workers.

Свойства
--------

*Also implements properties from its parent interface,* `EventTarget`.

`ServiceWorkerRegistration.scope` (en-US) Только для чтения

Returns a unique identifier for a service worker registration. This must be on the same origin as the document that registers the `ServiceWorker`.

`ServiceWorkerRegistration.installing` (en-US) **Только для чтения**

Returns a service worker whose state is `installing`. This is initially set to `null`.

`ServiceWorkerRegistration.waiting` (en-US) **Только для чтения**

Returns a service worker whose state is `waiting`. This is initially set to `null`.

`ServiceWorkerRegistration.active` (en-US) **Только для чтения**

Returns a service worker whose state is either `activating` or `activated`. This is initially set to `null`. An active worker will control a `ServiceWorkerClient` (en-US) if the client's URL falls within the scope of the registration (the `scope` option set when `ServiceWorkerContainer.register` is first called.)

`ServiceWorkerRegistration.navigationPreload` (en-US) Только для чтения

Returns the instance of `NavigationPreloadManager` (en-US) associated with the current service worker registration.

`serviceWorkerRegistration.periodicSync` (en-US)
Non-standard
 Только для чтения

Returns a reference to the `PeriodicSyncManager` (en-US) interface, which manages periodic background synchronization processes.

`ServiceWorkerRegistration.pushManager` Только для чтения

Returns a reference to the `PushManager` interface for managing push subscriptions including subscribing, getting an active subscription, and accessing push permission status.

`ServiceWorkerRegistration.sync` (en-US) **Non-standard** Только для чтения

Returns a reference to the `SyncManager` (en-US) interface, which manages background synchronization processes.

### Event handlers

`ServiceWorkerRegistration.onupdatefound` (en-US) Только для чтения

An `EventListener` (en-US) property called whenever an event of type `updatefound` is fired; it is fired any time the `ServiceWorkerRegistration.installing` (en-US) property acquires a new service worker.

Методы
------

*Also implements methods from its parent interface,* `EventTarget`.

`ServiceWorkerRegistration.getNotifications()` (en-US)

Returns a `Promise` that resolves to an array of `Notification` objects.

`ServiceWorkerRegistration.showNotification()`

Displays the notification with the requested title.

`ServiceWorkerRegistration.update()`

Checks the server for an updated version of the service worker without consulting caches.

`ServiceWorkerRegistration.unregister()` (en-US)

Unregisters the service worker registration and returns a `Promise`. The service worker will finish any ongoing operations before it is unregistered.

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

In this example, the code first checks whether the browser supports service workers and if so registers one. Next, it adds and `updatefound` event in which it uses the service worker registration to listen for further changes to the service worker's state. If the service worker hasn't changed since the last time it was registered, than the `updatefound` event will not be fired.

```js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw.js")
    .then(function (registration) {
      registration.addEventListener("updatefound", function () {
        // If updatefound is fired, it means that there's
        // a new service worker being installed.
        var installingWorker = registration.installing;
        console.log(
          "A new service worker is being installed:",
          installingWorker,
        );

        // You can listen for changes to the installing service worker's
        // state via installingWorker.onstatechange
      });
    })
    .catch(function (error) {
      console.log("Service worker registration failed:", error);
    });
} else {
  console.log("Service workers are not supported.");
}
```

Спецификации
------------

| Specification |
| --- |
| Service Workers # serviceworkerregistration-interface |
| Push API # extensions-to-the-serviceworkerregistration-interface |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Использование Service Workers (en-US)
* Service workers basic code example
* Is ServiceWorker ready?
* `Promise`
* Using web workers (en-US)


Server-sent events - Интерфейсы веб API

Server-sent events
==================

По традиции, web-страница должна отправить запрос на сервер, чтобы получить новые данные; это то, как страница получает данные с сервера. Server-sent events дают возможность серверу отправлять новые данные web-странице в любое время, отсылая сообщения web-странице. Такие входящие сообщения могут расцениваться как *Events (en-US) + data* внутри web-страницы.

Понятия и применение
--------------------

Чтобы изучить, как использовать server-sent events, обратитесь к статье Using server-sent events.

Interfaces
----------

`EventSource`

Defines all the features that handle connecting to a server, receiving events/data, errors, closing a connection, etc.

Examples
--------

* Simple SSE demo using PHP
Specification
-------------

| Specification |
| --- |
| HTML Standard # server-sent-events |

Совместимость с браузерами
--------------------------

{{Compat}}See also
--------

### Tools

* EventSource polyfill for Node.js
* Remy Sharp's EventSource polyfill
* Yaffle's EventSource polyfill
* Rick Waldron's jquery plugin
* intercooler.js declarative SSE support
### Related Topics

* AJAX
* JavaScript
* WebSockets
### Other resources

* A Twitter like application powered by server-sent events and its code on Github.
* HTML5 and Server-sent events
* Server-sent events using Asp.Net


Глобальная функция clearTimeout() - Интерфейсы веб API

Глобальная функция clearTimeout()
=================================

Глобальный метод **`clearTimeout()`** отменяет таймаут, ранее установленный вызовом `setTimeout()`.

Синтаксис
---------
```

scope.clearTimeout(timeoutID)
```

### Параметры

`timeoutID`

Идентификатор таймаута, который вы хотите отменить. Этот идентификатор был возвращён соответствующим вызовом `setTimeout()`.

It's worth noting that the pool of IDs used by `setTimeout()` and `setInterval()` are shared, which means you can technically use `clearTimeout()` and `clearInterval()` (en-US) interchangeably. However, for clarity, you should avoid doing so.

Пример использования
--------------------

Запустите приведённый ниже скрипт в контакте веб-страницы и кликните один раз. Вы увидите всплывающее сообщение через 1 секунду. Если вы щёлкните страницу несколько раз за одну секунду, предупреждение появится только один раз.

```js
var alarm = {
  remind: function (aMessage) {
    alert(aMessage);
    this.timeoutID = undefined;
  },

  setup: function () {
    if (typeof this.timeoutID === "number") {
      this.cancel();
    }

    this.timeoutID = window.setTimeout(
      function (msg) {
        this.remind(msg);
      }.bind(this),
      1000,
      "Wake up!",
    );
  },

  cancel: function () {
    window.clearTimeout(this.timeoutID);
  },
};
window.onclick = function () {
  alarm.setup();
};
```

Примечания
----------

Передача недействительного ID `clearTimeout()` ни к чему не приведёт. Исключение не создается.

Спецификации
------------

| Specification |
| --- |
| HTML Standard # dom-cleartimeout-dev |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `setTimeout()`
* `setInterval()`
* `clearInterval()` (en-US)
* `Window.requestAnimationFrame()`


WebRTC API - Интерфейсы веб API

WebRTC API
==========

**WebRTC** (Web Real-Time Communications) - это технология, которая позволяет Web-приложениям и сайтам захватывать и выборочно передавать аудио и/или видео медиа-потоки, а также обмениваться произвольными данными между браузерами, без обязательного использования посредников. Набор стандартов, которые включает в себя технология WebRTC, позволяет обмениваться данными и проводить пиринговые телеконференции, без необходимости пользователю устанавливать плагины или любое другое стороннее программное обеспечение.

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

Понятия и использование WebRTC
------------------------------

WebRTC является многоцелевым и вместе с Media Capture and Streams API (en-US), предоставляют мощные мультимедийные возможности для Web, включая поддержку аудио и видео конференций, обмен файлами, захват экрана, управление идентификацией и взаимодействие с устаревшими телефонными системами, включая поддержку передачи сигналов тонового набора DTMF (en-US). Соединения между узлами могут создаваться без использования специальных драйверов или плагинов, и часто без промежуточных сервисов.

Соединение между двумя узлами представлено как объект интерфейса `RTCPeerConnection`. Как только соединение установлено и открыто, используя объект `RTCPeerConnection`, медиапотоки (`MediaStream`s) и/или каналы данных (`RTCDataChannel` (en-US)s) могут быть добавлены в соединение.

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

Так же, можно использовать соединение между двумя узлами для обмена произвольными данными, используя объект интерфейса `RTCDataChannel` (en-US), что может быть использовано для передачи служебной информации, биржевых данных , пакетов игровых статусов, передача файлов или закрытых каналов передачи данных.

### Совместимость

В целом WebRTC хорошо поддерживается современными браузерами, но некоторые проблемы всё же есть. Библиотека adapter.js позволяет приложениям избавиться от проблем несовместимости.

WebRTC интерфейсы
-----------------

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

### Настройка соединения и управление

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

`RTCPeerConnection`

Представляет WebRTC соединение между локальным компьютером и удалённым узлом. Используется для обработки успешной передачи данных между двумя узлами.

`RTCSessionDescription` (en-US)

Представляет параметры сессии. Каждый `RTCSessionDescription` содержит описания типа (en-US), показывающего какую часть (предложение/ответ) процесса переговоров он описывает, и SDP-дескриптор сессии`.`

`RTCIceCandidate` (en-US)

Представляет собой кандидата сервера установки интернет соединения (ICE) для установления соединения `RTCPeerConnection`.

`RTCIceTransport` (en-US)

Представляет информацию о средстве подключения к Интернету (ICE).

`RTCPeerConnectionIceEvent` (en-US)

Представляет события, которые происходят в отношении кандидатов ICE, обычно `RTCPeerConnection`. Один тип передаётся данному объекту события: `icecandidate`.

`RTCRtpSender` (en-US)

Управляет кодированием и передачей данных через объект типа `MediaStreamTrack` для объекта типа `RTCPeerConnection`.

`RTCRtpReceiver` (en-US)

Управляет получением и декодированием данных через объект типа `MediaStreamTrack` для объекта типа `RTCPeerConnection`.

`RTCTrackEvent` (en-US)

Указывает на то, что новый входящий объект типа `MediaStreamTrack` был создан и объект типа `RTCRtpReceiver` (en-US) был добавлен в объект `RTCPeerConnection`.

`RTCCertificate` (en-US)

Представляет сертификат, который использует объект `RTCPeerConnection`.

`RTCDataChannel` (en-US)

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

`RTCDataChannelEvent` (en-US)

Представляет события, которые возникают при присоединении объекта типа `RTCDataChannel` (en-US) к объекту типа `RTCPeerConnection`. Один тип передаётся этому событию `datachannel`.

`RTCDTMFSender` (en-US)

Управляет кодированием и передачей двухтональной мультичастотной (DTMF) сигнализацией для объекта типа `RTCPeerConnection`.

`RTCDTMFToneChangeEvent` (en-US)

Указывает на входящее событие изменение тона двутоновой мультичастотной сигнализации (DTMF). Это событие не всплывает (если не указано иначе) и не является отменяемым (если не указано иначе).

`RTCStatsReport` (en-US)

Асинхронно сообщает статус для переданного объекта типа `MediaStreamTrack` .

`RTCIdentityProviderRegistrar`

Регистрирует провайдер идентификации (idP).

`RTCIdentityProvider`

Активирует возможность браузеру запросить создание или проверку объявления идентификации.

`RTCIdentityAssertion` (en-US)

Представляет идентификатор удалённого узла текущего соединения. Если узел ещё не установлен и подтверждён, ссылка на интерфейс вернёт `null`. После установки не изменяется.

`RTCIdentityEvent`

Представляет объект события объявление идентификатора провайдером идентификации (idP). Событие объекта типа `RTCPeerConnection`. Один тип передаётся этому событию `identityresult`.

`RTCIdentityErrorEvent`

Представляет объект события ошибки, связанной с провайдером идентификации (idP). Событие объекта типа `RTCPeerConnection`. Два типа ошибки передаются этому событию : `idpassertionerror` и `idpvalidationerror`.

Руководства
-----------

Обзор архитектуры WebRTC (en-US)

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

Жизнь WebRTC-сессии

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

Обзор WebRTC API (en-US)

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

Основы WebRTC (en-US)

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

Протоколы WebRTC

В этой статье представлены протоколы, в дополнение к которым создан API WebRTC.

Использование каналов данных в WebRTC

Это руководство описывает как вы можете использовать соединение узел-узел и связанный `RTCDataChannel` (en-US) для обмена произвольными данными между двумя узлами.

Взаимосвязи WebRTC

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

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

Увеличение совместимости, используя WebRTC adapter.js

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

Захват кадров с WebRTC

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

Простой пример канала данных RTCDataChannel

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

Сигнализация и двухсторонние видео вызовы

Например, мы берём чат на веб сокете, который мы создали в другом примере, и добавляем в него способность создавать видео вызовы. Сервер чата расширяется функциональностью обработки WebRTC сигнализации.

Ресурсы
-------

### Протоколы

#### WebRTC- текущие протоколы

* Протокол согласования соединения для Web RTC
* WebRTC Аудио кодек и требования к обработке
* RTCWeb Каналы данных
* RTCWeb Протокол канала данных
* Связь в реальном времени (WebRTC): Медиа транспорт и использование RTP
* WebRTC Безопасная архитектура
* Транспорты для RTCWEB

#### Связанные поддерживающие протоколы

* Установка интерактивной связи (ICE): Протокол обхода транслятора сетевых адресов (NAT) при доставки объектов Offer/Answer
* Сети обхода NAT (STUN)
* Схема URI для протокола сетей обхода NAT (STUN)
* Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers
* An Offer/Answer Model with Session Description Protocol (SDP)
* Session Traversal Utilities for NAT (STUN) Extension for Third Party Authorization

#### WebRTC статистика

* WebRTC Statistics API
Спецификации
------------

| Specification |
| --- |
| WebRTC: Real-Time Communication Between Browsers |
| Media Capture and Streams |
| Media Capture from DOM Elements |

В дополнение к этим спецификациям, определяющим API, необходимый для использования WebRTC, имеется несколько протоколов, перечисленных в разделе ресурсы.

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

* `MediaDevices`
* `MediaStreamEvent` (en-US)
* `MediaStreamConstraints` (en-US)
* `MediaStreamTrack`
* `MessageEvent` (en-US)
* `MediaStream`
* Firefox multistream and renegotiation for Jitsi Videobridge
* Peering Through the WebRTC Fog with SocketPeer
* Inside the Party Bus: Building a Web App with Multiple Live Video Streams + Interactive Graphics


WebGL - Интерфейсы веб API

WebGL
=====

Разработка
----------

WebGL (Web Graphics Library) - программная библиотека для языка JavaScript предназначенная для визуализации интерактивной трёхмерной графики и двухмерной графики в пределах совместимости веб-браузера без использования плагинов. WebGL приносит в веб трёхмерную графику, вводя API, который построен на основе OpenGL ES 2.0, что позволяет его использовать в элементах `canvas` HTML5 .

Поддержка WebGL присутствует в Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+ и Internet Explorer 11+. Однако помимо поддержки WebGL браузером, необходима также его поддержка графическим процессором клиента.

|  |  |
| --- | --- |
|
Начало работы с WebGL
Как настроить контекст WebGL .
Добавление 2D контента в контекст WebGL
Как отобразить простую плоскую фигуру с помощью WebGL.
Использование шейдеров для назначения цвета в WebGL
Демонстрирует как добавить цвет фигурам, используя шейдеры.
Анимация объектов с помощью WebGL

 Показывает как повернуть и перемещать объекты для создания простой
 анимации.

Создание 3D объектов с помощью WebGL (en-US)

 Показывает как создавать и анимировать 3D объект (в данном случае
 куб).

Использование текстур в WebGL (en-US)
Демонстрирует как разместить текстуры на гранях объекта.
Освещение в WebGL (en-US)
Как имитировать эффекты освещения в контексте WebGL .
Анимация текстур в WebGL (en-US)

 Показывает как анимировать текстуры; в данном случае путём
 размещения видео Ogg на гранях вращающегося куба.

WebGL: советы по применению на практике (en-US)

 Советы и предложения по улучшению контента, созданного вами при
 помощи WebGL.

Текстуры с других доменов (en-US)

 Информация о загрузке текстур с других доменов, отличных от того, с
 которого загружается ваш контент.

Использование расширений (en-US)
Как использовать расширения, доступные в WebGL.
 | Ресурсы

Спецификация WebGL
Спецификация WebGL.
Официальный сайт WebGL
Веб-сайт разработчиков WebGL - Khronos Group.
Изучение WebGL
Веб-сайт с уроками, посвящёнными использованию WebGL.
Основы WebGL
Учебные материалы по основным возможностям WebGL.
Матрицы в WebGL

 Введение в использование матриц в двухмерной графике на WebGL. На
 этом ресурсе объясняется математическая основа перспективы в
 трёхмерной графике.

Советы по использованию WebGL
Веб-сайт с советами по написанию кода на WebGL.
ewgl-matrices
Библиотека для работы с матрицами для WebGL
glMatrix

 Библиотека для работы с матрицами и векторами, написанная на
 JavaScript, предназначенная для высокопроизводительных приложений на
 WebGL

mjs

 Математическая библиотека для работы с векторами и матрицами,
 написанная на JavaScript, оптимизированная для использования с
 WebGL.

Sylvester

 Библиотека с открытым исходным кодом для работы с векторами и
 матрицами. Не оптимизирована для WebGL, но производительная.

WebGL площадка

 Онлайн инструмент для создания и публикации проектов на WebGL.
 Удобна для быстрого прототипирования и экспериментирования.

Академия WebGL

 Редактор HTML/Javascript с учебными материалами для обучения основам
 программирования на webgl.

 |

Совместимость с браузерами
--------------------------

### api.WebGLRenderingContext

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.WebGL2RenderingContext

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### Замечания по Gecko

#### Отладка и тестирование WebGL

Начиная с Gecko 10.0, имеются две настройки, позволяющие вам управлять возможностями WebGL для тестирования своего кода:

`webgl.min_capability_mode`

Свойство типа Boolean которое, при значении `true` позволяет запускать режим минимальных функциональных возможностей. В этом режиме WebGL сконфигурирован осуществлять поддержку минимального набора функциональных возможностей, поддержка которых обязательна по спецификации WebGL. Это позволяет вам убедиться в том, что ваш код на WebGL будет работать на любом устройстве или браузере, независимо от их возможностей. Значением по умолчанию для это свойства является значение `false`.

`webgl.disable_extensions`

Свойство типа Boolean которое, при значении `true` отключает все расширения WebGL. Значением по умолчанию для это свойства является значение `false`.


AudioNode - Интерфейсы веб API

AudioNode
=========

**AudioNode** это общий интерфейс для описания модулей обработки аудио таких как источники звука (например HTML элементы `<audio>` или `<video>`), генераторы звука (например `OscillatorNode` (en-US) и т.п.), приёмники звука для модулей производящих обработку звука (например `BiquadFilterNode` (en-US) или `ConvolverNode` (en-US)), или регуляторы громкости (например `GainNode` (en-US)).

![AudioNodes participating in an AudioContext create a audio routing graph.](/ru/docs/Web/API/AudioNode/webaudiobasics.png)

`AudioNode` имеет входы и выходы, каждый с заданным количеством *каналов*. `AudioNode` без входов в с одним или несколькими выходами называются *источниками* (*source node*). Результаты обработки передаются от одного AudioNode к другому, при этом каждый узел считывает только свой вход, производит обработку и представляет результат на свой выход, или просто пропускает аудио через себя (например `AnalyserNode` где результат представляется отдельно).

Разные узлы могут быть связаны в *граф обработки*. Граф помещается в `AudioContext`. Один `AudioNode` может принадлежать только одному `AudioContext`. В общем, узлы наследуют свойства и методы AudioNode, но они могут также и определять собственный функционал.Смотрите описания конкретных узлов на страницах этих узлов перечисленных на главной странице Web Audio API.

**Примечание:** An `AudioNode` can be target of events, therefore it implements the `EventTarget` interface.

Свойства
--------

`AudioNode.context` Только для чтения

Возвращает связанный `AudioContext`, это объект, представляющий граф, в котором находится данный узел.

`AudioNode.numberOfInputs` (en-US) Только для чтения

Возвращает количество входов узла. Узлы определённые как источники имеют `numberOfInputs` равное 0.

`AudioNode.numberOfOutputs` (en-US) Только для чтения

Возвращает количество выходов узла. Узлы назначения — такие как `AudioDestinationNode` (en-US) — имеют количество выходов равное 0.

`AudioNode.channelCount`

Это целое число, используемое для определения того, сколько каналов используются для up-mixing and down-mixing (en-US) с любыми входами узла. Его использование точнее определяется значением `AudioNode.channelCountMode` (en-US).

`AudioNode.channelCountMode` (en-US)

Это перечисление описывающее путь согласования каналов между входом и выходом.

`AudioNode.channelInterpretation` (en-US)

 Это перечисление описывающее каналы.Эта интерпретация описывает как будет происходить up-mixing and down-mixing (en-US).
 Возможные значения `"speakers"` or `"discrete"`.

Методы
------

*Так же реализует методы из интерфейса `EventTarget`.*

`AudioNode.connect(AudioNode)` (en-US)

Позволяет нам подключить один выход данного узла на один вход другого узла.

`AudioNode.connect(AudioParam)`

Позволяет нам подключить один выход данного узла на параметрический вход другого.

`AudioNode.disconnect()` (en-US)

Позволяет нам отключить текущий узел от другого, уже подключённого узла.

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

Этот простой фрагмент кода показывает создание некоторых аудио узлов, и как можно использовать свойства и методы AudioNode. Вы можете найти примеры такого использования на любом из примеров, на странице Web Audio API (например Violent Theremin.)

```js
var AudioContext = window.AudioContext || window.webkitAudioContext;

var audioCtx = new AudioContext();

var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.context;
oscillator.numberOfInputs;
oscillator.numberOfOutputs;
oscillator.channelCount;
```

Спецификации
------------

| Specification |
| --- |
| Web Audio API # AudioNode |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Using the Web Audio API (en-US)


DOMImplementation - Интерфейсы веб API

DOMImplementation
=================

Интерфейс **`DOMImplementation`** представляет собой объект, предоставляющий методы, которые не зависят от какого-либо конкретного документа. Такой объект возвращается свойством `Document.implementation` (en-US).

Свойства
--------

*Этот интерфейс не имеет определённого свойства и не наследует его.*

Методы
------

*Нет унаследованного метода.*

`DOMImplementation.createDocument()` (en-US)

Создаёт и возвращает `XMLDocument`.

`DOMImplementation.createDocumentType()` (en-US)

Создаёт и возвращает `DocumentType` (en-US).

`DOMImplementation.createHTMLDocument()`

Создаёт и возвращает HTML `Document`.

`DOMImplementation.hasFeature()` (en-US)

Возвращает `Boolean` (en-US), указывающий, поддерживается ли данная функция или нет. Эта функция ненадёжна и сохраняется только для целей совместимости: за исключением запросов, связанных с SVG, она всегда возвращает true. Старые браузеры очень непоследовательны в своём поведении.

Спецификации
------------

| Specification |
| --- |
| DOM Standard # interface-domimplementation |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* The DOM interfaces index.