recursal/MDN huggingface dataset:
HTMLCanvasElement.transferControlToOffscreen()
==============================================

Baseline 2023
-------------

Newly availableSince March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

**`HTMLCanvasElement.transferControlToOffscreen()`**
 передаёт управление объекту `OffscreenCanvas` (en-US), который может использоваться либо в основном потоке, либо в `Worker`.

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


```js
OffscreenCanvas HTMLCanvasElement.transferControlToOffscreen()
```

### Возвращаемое значение

Объект `OffscreenCanvas` (en-US).

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


```js
var htmlCanvas = document.createElement("canvas");
var offscreen = htmlCanvas.transferControlToOffscreen();
var gl = offscreen.getContext("webgl");

// ... отрисовка с помощью gl контекста ...

// Возвращаем кадры в исходный HTMLCanvasElement
gl.commit();
```

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

| Specification |
| --- |
| HTML Standard # dom-canvas-transfercontroltooffscreen-dev |

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

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

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

* Интерфейс, определяющий метод: `HTMLCanvasElement`
* `OffscreenCanvas` (en-US)
* `WebGLRenderingContext.commit()`
HTMLCanvasElement.width
=======================

 Свойство **`HTMLCanvasElement.width`** — это положительное
 `целое число`, отображающее значение HTML атрибута `width` элемента `<canvas>` в CSS пикселях.
 Если атрибут не указан или для него задано недопустимое значение, например отрицательное, то используется значение по умолчанию `300`.

Одно из двух свойств (другое — `HTMLCanvasElement.height`), контролирующих размер холста.

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


```js
var pxl = canvas.width;
canvas.width = pxl;
```

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

Возьмём следующий `<canvas>` элемент:


```html
<canvas id="canvas" width="300" height="300"></canvas>
```


Вы можете получить ширину холста следующим образом:


```js
var canvas = document.getElementById("canvas");
console.log(canvas.width); // 300
```

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

| Specification |
| --- |
| HTML Standard # dom-canvas-height |

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

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

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

* Интерфейс `HTMLCanvasElement`.
* Другое свойство, контролирующее размер холста,
 `HTMLCanvasElement.height`.
HTMLCanvasElement.height
========================

 Свойство **`HTMLCanvasElement.height`** — это положительное
 `целое число`, отображающее значение HTML атрибута `height` элемента `<canvas>` в CSS пикселях. Если атрибут не указан или
 для него задано недопустимое значение, например отрицательное, то используется значение по умолчанию `150`

Одно из двух свойств (другое — `HTMLCanvasElement.width`), контролирующих размер холста.

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


```js
var pxl = canvas.height;
canvas.height = pxl;
```

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

Возьмём следующий `<canvas>` элемент:


```html
<canvas id="canvas" width="300" height="300"></canvas>
```


Вы можете получить высоту холста следующим образом:


```js
var canvas = document.getElementById("canvas");
console.log(canvas.height); // 300
```

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

| Specification |
| --- |
| HTML Standard # dom-canvas-height |

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

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

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

* Интерфейс `HTMLCanvasElement`.
* Другое свойство, контролирующее размер холста
 `HTMLCanvasElement.width`.
HTMLCanvasElement.captureStream()
=================================

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

**`HTMLCanvasElement.captureStream()`** метод возвращает `CanvasCaptureMediaStream` (en-US), который является видеозахватчиком (оцифровщиком) в реальном времени на поверхности canvas.

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

MediaStream = canvas.captureStream(frameRate);
```

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

`frameRate` Необязательный

Число двойной точности с плавающей точкой, указывающее частоту захвата каждого фрейма. Если не установлено, новый фрейм будет захватываться каждый раз, как canvas изменится; `если установлено в 0`, будет захвачен один фрейм.

### Возвращаемое значение

Ссылка на `MediaStream` объект.

### Исключения

**NotSupportedError**

Параметр `frameRate` имеет отрицательное значение.

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


```js
// Поиск элемента canvas для захвата
var canvasElt = document.querySelector("canvas");

// Получение потока
var stream = canvasElt.captureStream(25); // 25 FPS

// Делать что-то с потоком
// например, отправить что-то другому компьютеру, используя RTCPeerConnection
// pc это RTCPeerConnection, созданное где-то ещё
pc.addStream(stream);
```

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

| Specification |
| --- |
| Media Capture from DOM Elements # dom-htmlcanvaselement-capturestream |

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

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

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

* `CanvasCaptureMediaStream` (en-US), the interface it belongs to.
* `HTMLMediaElement.captureStream()` (en-US), which allows capturing a stream from a media element.
* `MediaStream`
* `Media Capture and Streams API` (en-US)
AudioContext.createMediaElementSource()
=======================================

Метод `createMediaElementSource()` интерфейса `AudioContext` используется для создания объекта `MediaElementAudioSourceNode` из существующих HTML-элементов `<audio>` или `<video>` для дальнейших манипуляций со звуком и его воспроизведения.

Узнать больше о созданном таким образом аудио узле можно на справочной странице `MediaElementAudioSourceNode`.

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


```js
var audioCtx = new AudioContext();
var source = audioCtx.createMediaElementSource(myMediaElement);
```

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

`myMediaElement`

Объект `HTMLMediaElement`, который вы хотите использовать в качестве исходного звука.

### Возвращаемые значения

Объект `MediaElementAudioSourceNode`.

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

Простой пример создания аудио узла из элемента `<audio>` используя `createMediaElementSource()`, и управления усилением звука через `GainNode` (en-US) перед подачей в `AudioDestinationNode` (en-US) для воспроизведения. При движении мыши вызывается функция `updatePage()`, вычисляющая текущее усиление как отношение Y позиции курсора к общей высоте окна. Таким образом вы можете увеличивать/уменьшать громкость звучания аудио движениями мыши вверх/вниз.

**Примечание:** вы можете также посмотреть демонстрацию или исходники.


```js
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var myAudio = document.querySelector("audio");
var pre = document.querySelector("pre");
var myScript = document.querySelector("script");

pre.innerHTML = myScript.innerHTML;

// Создаём MediaElementAudioSourceNode
// На основе HTMLMediaElement
var source = audioCtx.createMediaElementSource(myAudio);

// Создаём узел контроля громкости (усиления)
var gainNode = audioCtx.createGain();

// Переменные, содержащие Y координату курсора мыши
// и высоту окна
var CurY;
var HEIGHT = window.innerHeight;

// Обновляем Y координату курсора при движении мышью
// и вычисляем новый коэффициент усиления

document.onmousemove = updatePage;

function updatePage(e) {
  CurY = window.Event
    ? e.pageY
    : event.clientY +
      (document.documentElement.scrollTop
        ? document.documentElement.scrollTop
        : document.body.scrollTop);

  gainNode.gain.value = CurY / HEIGHT;
}

// Последний шаг - построение графа
// Подсоединяем AudioBufferSourceNode к gainNode
// а gainNode, в свою очередь, к конечному узлу вывода
// Теперь мы можем слушать музыку управляя громкостью воспроизведения движением курсора мыши :)
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
```


**Примечание:** Вызов `createMediaElementSource()` перенаправит выходной поток аудиоданных из `HTMLMediaElement` в обрабатывающий граф AudioContext. Управление воспроизведением медиа все ещё будет осуществляться через API медиа элемента или его панель управления.

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

| Specification |
| --- |
| Web Audio API # dom-audiocontext-createmediaelementsource |

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

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

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

* Using the Web Audio API (en-US)
HTMLImageElement.decoding
=========================

Свойство **`decoding`** интерфейса `HTMLImageElement` предназначено для указания браузеру, как он должен декодировать изображение.

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

refStr = imgElem.decoding;
imgElem.decoding = refStr;
```

### Значения

`DOMString` предоставляет указания по декодированию. Возможные значения:

* **`sync`**: Декодировать изображение синхронно для отображения одновременно с другим содержимым.
* **`async`**: Декодировать содержимое асинхронно для уменьшения задержки в отображении другого содержимого.
* **`auto`**: Режим по умолчанию, который не отдаёт предпочтения ни одному режиму декодирования, предоставляя браузеру решать, какой режим для пользователя оптимальное.
Примеры
-------


```js
var img = new Image();
img.decoding = "sync";
img.src = "img/logo.png";
```

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

| Specification |
| --- |
| HTML Standard # dom-img-decoding |

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

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

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

* <img>: The Image Embed element
Image()
=======

Конструктор **Image()** создаёт новый экземпляр HTMLImageElement. Эквивалентно document.createElement ('img').### Конструктор элемента Image

Имеет два необязательных параметра: **ширину** и **высоту**:


```js
Image([unsigned long width, unsigned long height])
```

### Пример

##### Исходный код


```js
var img = new Image(100, 200);
img.src = "picture.jpg";
console.log(img);
```


##### Результат


```html
<img width="100" height="200" src="picture.jpg" />
```


**Примечание:** Примечание: этот конструктор существует только для истории, и возвращает экземпляр HTMLImageElement точно также, как и `document.createElement('img')`.
Location.replace()
==================

Метод **`Location.replace()`** заменяет текущий ресурс на новый по URL, указанному в качестве параметра. Отличие от `assign()` в том, что при использовании `replace()` текущая страница не будет сохранена в `History`, и пользователь не сможет использовать кнопку *назад*, чтобы вернуться к ней.

Если условия вызова метода не удовлетворяют требованиям безопасности, выбрасывается `DOMException` (en-US) с типом `SECURITY_ERROR`. Это случается, если домен скрипта, вызывающего метод, не совпадает с доменом страницы, изначально содержащимся в `Location`.

Если новый URL некорректен, выбрасывается `DOMException` (en-US) с типом `SYNTAX_ERROR`.

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

object.replace(url);
```

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

*url*

`DOMString` , содержащий URL страницы, на которую нужно перейти.

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


```js
// Перейти на статью Location.reload, заменив текущую страницу
document.location.replace(
  "https://developer.mozilla.org/ru/docs/Web/API/Location.reload",
);
```

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

| Specification |
| --- |
| HTML Standard # dom-location-replace-dev |

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

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

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

* Интерфейс `Location`, к которому принадлежит этот метод.
* Похожие методы: `Location.assign()` и `Location.reload()`.
Location.assign()
=================

Метод **`Location.assign()`** запускает загрузку и отображение нового документа по указанному URL.

Если новый URL не удовлетворяет требованиям безопасности, выбрасывается `DOMException` (en-US) с типом `SECURITY_ERROR`. Это случается, если домен скрипта, вызывающего метод, не совпадает с доменом страницы, изначально содержащимся в `Location`.

Если новый URL некорректен, выбрасывается `DOMException` (en-US) с типом `SYNTAX_ERROR`.

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

object.assign(url);
```

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

*url*

`DOMString`, содержащий URL страницы, на которую нужно перейти.

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


```js
// Перейти на статью Location.reload
document.location.assign(
  "https://developer.mozilla.org/ru/docs/Web/API/Location.reload",
);
```

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

| Specification |
| --- |
| HTML Standard # dom-location-assign-dev |

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

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

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

* Интерфейс `Location`, к которому принадлежит этот метод.
* Похожие методы: `Location.replace()` и `Location.reload()`.
Location.reload()
=================

Метод **`Location.reload()`** перезагружает ресурс из текущего URL подобно кнопке обновления браузера.

Если условия вызова метода не удовлетворяют требованиям безопасности, выбрасывается `DOMException` (en-US) с типом `SECURITY_ERROR`. Это случается, если домен скрипта, вызывающего метод, не совпадает с доменом страницы, изначально содержащимся в `Location`.

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

location.reload();
```

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


```js
// Перезагрузить текущую страницу
document.location.reload();
```

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

| Specification |
| --- |
| HTML Standard # dom-location-reload-dev |

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

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

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

* Интерфейс `Location`, к которому принадлежит этот метод.
* Похожие методы: `Location.assign()` и `Location.replace()`.
EventTarget.dispatchEvent()
===========================

Отправляет событие в общую систему событий. Это событие подчиняется тем же правилам поведения "Захвата" и "Всплывания" как и непосредственно инициированные события.

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

cancelled = !target.dispatchEvent(event)
```

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

* `event` - объект `Event`, который инициализируется.
* `target` - используется для инициализации `Event.target` и определяет, какие обработчики события вызвать.
### Возвращаемое Значение

* Возвращаемое значение — `false`, если событие отменяемое и хотя бы один из обработчиков этого события вызвал `Event.preventDefault()`. В ином случае — `true`.

Метод `dispatchEvent` генерирует исключение `UNSPECIFIED_EVENT_TYPE_ERR`, если тип события не был указан при инициализации до вызова метода, или если тип события равен `null` или пустой строке. Исключения возникающие в обработчиках события работают как неперехваченные исключения; обработчики события отрабатывают во вложенном стеке вызовов: они блокируют вызывающий код до окончания своего выполнения, но исключения не распространяются на вызывающего.

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

dispatchEvent является последним шагом для процесса создание => инициализация => диспетчер, который используется для контроля событий внутри модели выполнения событий.Событие может быть создано используя метод document.createEvent (en-US) и инициализировано используя initEvent (en-US) или другой, более конкретный, метод инициализации, такой как initMouseEvent (en-US) или initUIEvent (en-US).

Смотрите также События

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

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

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-eventtarget-dispatchevent③ |

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

`dispatchEvent` представляет собой последний шаг в процессе create-init-dispatch, который служит для отправки событий.

Событие может быть создано методом document.createEvent и инициализировано initEvent или, более конкретными инициализирующими методами, такими как initMouseEvent или initUIEvent.

Смотрите также справку по Event object.

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
EventTarget()
=============

**`EventTarget()`** конструктор создаёт новый `EventTarget` экземпляр объекта.

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

var myEventTarget = new EventTarget();
```

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

Нет параметров.

### Возвращаемые значения

Экземпляр `EventTarget` объекта.

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


```js
class MyEventTarget extends EventTarget {
  constructor(mySecret) {
    super();
    this._secret = mySecret;
  }

  get secret() {
    return this._secret;
  }
}

let myEventTarget = new MyEventTarget(5);
let value = myEventTarget.secret; // == 5
myEventTarget.addEventListener("foo", function (e) {
  this._secret = e.detail;
});

let event = new CustomEvent("foo", { detail: 7 });
myEventTarget.dispatchEvent(event);
let newValue = myEventTarget.secret; // == 7
```

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-eventtarget-eventtarget① |

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

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

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

* `EventTarget`
Navigator: метод taintEnabled()
===============================

**Устарело:** Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.

Метод `Navigator.taintEnabled()` всегда возвращает `false`.

Метод защиты с помощью «порчи» использовался в JavaScript 1.2 и был удалён очень давно. Этот метод существует только для поддержания совместимости с очень старым кодом.

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


```js
taintEnabled()
```

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

Нет.

### Возвращаемое значение

Всегда возвращает `false`.

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

| Specification |
| --- |
| HTML Standard # dom-navigator-taintenabled |

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

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

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

* `Navigator`
Navigator: метод getVRDisplays()
================================

**Устарело:** Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.

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

Метод **`getVRDisplays()`** интерфейса `Navigator` возвращает промис, из которого можно получить массив объектов `VRDisplay` (en-US), представляющие доступные VR-устройства, подключенные к компьютеру.

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


```js
getVRDisplays()
```

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

Отсутствуют.

### Возвращаемое значение

Промис, который будет содержать массив объектов `VRDisplay` (en-US).

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

Смотрите примеры использования в `VRDisplay` (en-US).

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

#### No specification found

No specification data found for `api.Navigator.getVRDisplays`.  
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.

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

* WebVR API
Navigator.geolocation
=====================

Свойство **`Navigator.geolocation`** только для чтения, возвращающие объект `Geolocation`, который даёт веб контенту доступ к месторасположению устройства. Это позволяет веб-сайту или приложению предложить индивидуальный результат основанный на месторасположении пользователя.

> 
> \*\*Примечание:\*\*По соображениям безопасности, когда веб-страница пытается получить доступ к информации о местоположении, пользователь получает уведомление с просьбой дать разрешение. Помните, что каждый браузер имеет свои собственные правила и методы для запроса этого разрешения.
> 
> 
> 

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

geo = navigator.geolocation
```

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

| Specification |
| --- |
| Geolocation API # dom-navigator-geolocation |

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

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

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

* Использование геолокации. (en-US)
Navigator.doNotTrack
====================

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

Возвращает настройки пользователя do-not-track. Будет "yes" если пользователь попросил не отслеживать его на веб-сайтах, контенте, рекламе.

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

dnt = navigator.doNotTrack;
```


Значение отражает , что в заголовке do-not-track header, т.е. значения {"1", "0", "unspecified" }.Примечание: до Gecko 32, Gecko были использованы значения { "yes", "no", "unspecified"} (bug 887703).

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

dump(window.navigator.doNotTrack);
// prints "1" if DNT is enabled; "0" if the user opted-in for tracking; otherwise this is "unspecified"
```

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

Tracking Preference Expression (Working проект) основан на более ранней версии этой спецификации, где `navigator.doNotTrack` **это** значение посланное заголовком `do-not-track`.

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

* The Do Not Track field guide
Совместимость с браузерами
--------------------------

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