recursal/MDN huggingface dataset:
Navigator.registerProtocolHandler()
===================================

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

По соображениям безопасности, по умолчанию, веб-сайты могут зарегистрировать только обработчики протокола для себя - домен и протокол обработчика должны совпадать с текущим сайтом. Тем не менее, пользователи могут установить предпочтение в Firefox, разрешающее перекрёстную обработку веб-сайтов в настройках `gecko.handlerService.allowRegisterFromDifferentHost` установив `true` в about:config.

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

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

window.navigator.registerProtocolHandler(protocol, uri, title);
```


* `protocol` это протокол нуждающийся в обработке, записанный в виде строки.
* `uri` это URI обработчика в виде строки. Вы можете включить "%s", что бы показать куда вставлять выходящие URI документа для обработки.

**Примечание:** Примечание: ДОЛЖНА быть `http` или `https` схема
* `title` это заголовок обработчика, представленный пользователю в виде строки.
Пример
------

Если ваше веб-приложение находится по адресу `http://www.google.co.uk`, вы можете зарегистрировать обработчик протокола и привязать обращение к нему "burger", как это:
```

navigator.registerProtocolHandler("burger",
                                  "http://www.google.co.uk/?uri=%s",
                                  "Burger handler");
```


Это создаст обработчик, который разрешает `burger://`ссылки, направляющие пользователя на ваше веб-приложение, вставляя burger информацию указанную в ссылке на URL. Напомним, что этот скрипт должен быть запущен с того же домена (так и любой странице расположенной в `google.co.uk`) и второе, переданный аргумент должен быть `http` или `https` схемы (в этом примере это `http`) .

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

![](/ru/docs/Web/API/Navigator/registerProtocolHandler/protocolregister.png)

**Примечание:** "Регистрация службы веб-почты, как mailto-обработчик", показывает как сделать это в рамках XPCOM.

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

Specified by the WHATWG's Web Applications 1.0 working draft (HTML5).

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

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

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

* Web-based protocol handlers
* RegisterProtocolHandler Enhancing the Federated Web at Mozilla Webdev
* Web Application APIs - Custom scheme and content handlers - Whitelisted schemes
* Register a webmail service as mailto handler shows how to do `registerProtocolHandler` from XPCOM scope.
* XPCOM Interface Reference > nsIWebContentHandlerRegistrar > registerContentHandler - This shows how to use this function XPCOM scope
Navigator.serviceWorker
=======================

Свойство только-для-чтения **Navigator.serviceWorker** возвращает объект `ServiceWorkerContainer`, который предоставляет доступ к регистрации, удалению, обновлению и взаимодействию с объектами `ServiceWorker` для соответствующего документа.

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

var workerContainerInstance = navigator.serviceWorker;
```

### Значение

Объект `ServiceWorkerContainer`.

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

| Specification |
| --- |
| Service Workers # navigator-service-worker-attribute |

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

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

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

* ServiceWorker API (en-US)
* Использование Service Workers (en-US)
Navigator.cookieEnabled
=======================

Возвращает логическое значение (Boolean), показывающее включены ли куки или нет.(свойство только для чтения.

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

var cookieEnabled = navigator.cookieEnabled;
```


* `cookieEnabled` is a Boolean `true` or `false`.
Пример
------


```js
if (!navigator.cookieEnabled) {
  // пусть пользователь знает, что включённые куки делают страницу более полезной.
```

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

| Specification |
| --- |
| HTML Standard # dom-navigator-cookieenabled-dev |

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

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

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

HTML WHATWG
TouchEvent.touches
==================

**`touches`** это доступный только для чтения список `TouchList`, в котором перечислены все объекты `Touch` для точек контакта с сенсорной поверхностью, независимо от того, изменились ли они и какой целевой элемент был у них во время события `touchstart (en-US)`.

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

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

var touches = touchEvent.touches;
```

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

`touches`

Список `TouchList` всех объектов `Touch` для точек контакта с сенсорной поверхностью, независимо от того, изменились ли они и какой целевой элемент был у них во время события `touchstart (en-US)`.

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

Этот пример демонстрирует свойство `TouchEvent.touches` объекта `TouchEvent`. Свойство `TouchEvent.touches` это объект `TouchList`, который содержит список объектов `Touch` для каждой активной точки контакта с сенсорной поверхностью.

В следующем фрагменте кода обработчик события `touchstart (en-US)` проверяет длину списка `TouchEvent.touches` для определения количества точек касаний, которые были активированы, а затем вызывает разные обработчики в зависимости от количества таких точек.


```js
someElement.addEventListener(
  "touchstart",
  function (e) {
    // Вызов определённого обработчика, в зависимости от
    // количества точек касания
    switch (e.touches.length) {
      case 1:
        handle\_one\_touch(e);
        break;
      case 2:
        handle\_two\_touches(e);
        break;
      case 3:
        handle\_three\_touches(e);
        break;
      default:
        console.log("Not supported");
        break;
    }
  },
  false,
);
```

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

| Specification |
| --- |
| Touch Events # dom-touchevent-touches |

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

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

Сводка
------

Логическое (`Boolean`) значение, показывающее, была ли активирована клавиша `alt` (Alternate), когда событие касания было создано. Если клавиша `alt` активирована, значение равно `true`. В противном случае оно равно `false`.

Данное свойство предназначено Только для чтения .

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

var altEnabled = touchEvent.altKey;
```

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

`altEnabled`

`true` если клавиша

`alt`

активирована для данного события; и `false` если нет.

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

Данный пример демонстрирует доступ к свойствам клавиш-модификаторов события `TouchEvent`: `TouchEvent.altKey`, `TouchEvent.ctrlKey` (en-US), `TouchEvent.metaKey` (en-US) и `TouchEvent.shiftKey` (en-US).

В фрагменте кода ниже обработчик события `touchstart (en-US)` логирует состояние клавиш-модификаторов события.


```js
someElement.addEventListener(
  "touchstart",
  function (e) {
    // Log the state of this event's modifier keys
    console.log("altKey = " + e.altKey);
    console.log("ctrlKey = " + e.ctrlKey);
    console.log("metaKey = " + e.metaKey);
    console.log("shiftKey = " + e.shiftKey);
  },
  false,
);
```

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

| Specification |
| --- |
| Touch Events # dom-touchevent-altkey |

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

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

Сводка
------

`TouchList` список точек касания (объекта `Touch`), смысл которых зависит от типа события:

* Для события `touchstart`, это список точек касания, в которых появилось взаимодействие с поверхностью экрана.
* Для события `touchmove`, это список точек касания, которые изменились с момента последнего события.
* Для события `touchend`, это список точек касания, на которых прекратилось взаимодействие с поверхностью экрана (т. е. набор точек, где прервалось касание пальцами).

Это свойство предназначено Только для чтения .

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

var changes = touchEvent.changedTouches;
```

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

`changes`

Список `TouchList` объекта `Touch` в котором содержатся все точки касания для данного события.

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

Этот пример демонстрирует свойство `TouchEvent.changedTouches` объекта `TouchEvent`. Свойство `TouchEvent.changedTouches` это — объект `TouchList`, который содержит объект `Touch` для каждой точки, где произошло событие.

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


```js
someElement.addEventListener(
  "touchmove",
  function (e) {
    // Iterate through the list of touch points that changed
    // since the last event and print each touch point's identifier.
    for (var i = 0; i < e.changedTouches.length; i++) {
      console.log(
        "changedTouches[" +
          i +
          "].identifier = " +
          e.changedTouches[i].identifier,
      );
    }
  },
  false,
);
```

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

| Specification |
| --- |
| Touch Events # dom-touchevent-changedtouches |

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

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

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

Метод **`Geolocation.getCurrentPosition()`** используется для получения текущего местоположения устройства.Синтаксис
---------
```

navigator.geolocation.getCurrentPosition(success[, error[, options]])
```

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

`success`

Колбэк-функция, которая принимает объект `Position` (en-US) в качестве единственного входного параметра.

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

Необязательная колбэк-функция, принимающая объект `PositionError` как единственный входной параметр.

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

 Необязательный объект `PositionOptions` (en-US).
 Включает в себя


* `maximumAge`: целое число (миллисекунды) | infinity - максимальное время кеширования позиции.
* `timeout`: целое число (миллисекунды) - количество времени до вызова callback ошибки. Если 0, вызов не происходит.
* `enableHighAccuracy`: false | true

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


```js
var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0,
};

function success(pos) {
  var crd = pos.coords;

  console.log("Ваше текущее местоположение:");
  console.log(`Широта: ${crd.latitude}`);
  console.log(`Долгота: ${crd.longitude}`);
  console.log(`Плюс-минус ${crd.accuracy} метров.`);
}

function error(err) {
  console.warn(`ERROR(${err.code}): ${err.message}`);
}

navigator.geolocation.getCurrentPosition(success, error, options);
```

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

| Specification |
| --- |
| Geolocation API # getcurrentposition-method |

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

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

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

* Using geolocation (en-US)
* `Navigator.geolocation`
BackgroundFetchRegistration.result
==================================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`result`** интерфейса `BackgroundFetchRegistration` возвращает строку, которая указывает на то, был фоновый запрос успешным ли неудачным.

Если значение этого свойства поменялось, то в связанном объекте `BackgroundFetchRegistration` наступает событие progress.

Значение
--------

Одна из следующих строк:

`""`

Запрос активен, так что пока нет результата.

`"success"`

Запрос был успешен.

`"failure"`

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

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

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


```js
console.log(bgFetch.result);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-result |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`recordsAvailable`** интерфейса `BackgroundFetchRegistration` возвращает `true` если есть запросы и ответы, к которым необходимо получить доступ. Если же возвращает `false`, то `match()` и `matchAll()` не могут быть использованы.

Значение
--------

`boolean`.

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

Вывод этого свойства в консоль возвращает `true` или `false` чтобы указать, есть ли записи.


```js
console.log(bgFetch.recordsAvailable);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-recordsavailable |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
BackgroundFetchRegistration: progress event
===========================================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Событие **`progress`** интерфейса `BackgroundFetchRegistration` происходит когда выполняется связанные фоновый запрос.

Практически это событие происходит, когда любое из следующих свойств возвращает новое значение:

* `uploaded`,
* `downloaded`,
* `result`, или
* `failureReason`.
Синтаксис
---------

Используйте имя события в таких методах как `addEventListener()`, или установите свойство события `onprogress` в соответствующем объекте `BackgroundFetchRegistration`.


```js
addEventListener("progress", (event) => {});
onprogress = (event) => {};
```

Тип события
-----------

Общий `Event` без дополнительных параметров.

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

Следующий пример демонстрирует как вывести ход загрузки в консоль. Сначала код проверяет был ли предоставлен `downloadTotal`, когда фоновый запрос был зарегистрирован. The code first checks that a `downloadTotal` was provided when the background fetch was registered. Затем это значение используется для расчета процента на основе свойства `downloaded`.


```js
bgFetch.addEventListener("progress", () => {
  if (!bgFetch.downloadTotal) return;
  const percent = Math.round(
    (bgFetch.downloaded / bgFetch.downloadTotal) \* 100,
  );
  console.log(`Download progress: ${percent}%`);
});
```

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

| Specification |
| --- |
| Background Fetch # background-fetch-registration-events |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`downloaded`** интерфейса `BackgroundFetchRegistration` возвращает количество скачанных байт, изначально `0`.

Когда значение свойства меняется, то у связанного объекта `BackgroundFetchRegistration` срабатывает событие progress.

Значение
--------

`number`.

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

Логирование этого свойства в консоль вернёт количество скачанных байт.


```js
console.log(bgFetch.downloaded);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-downloaded |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`id`** интерфейса `BackgroundFetchRegistration` возвращает копию идентификатора запроса.

Значение
--------

Строка.

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

Вывод этого значения в консоль возвращает идентификатор, который был установлен при регистрации фонового запроса. В этом случает это `"my-fetch"`.


```js
console.log(bgFetch.id); // "my-fetch"
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-id |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Доступное только для чтения свойство **`uploadTotal`** интерфейса `BackgroundFetchRegistration` возвращает общее число байтов для отправки на сервер.

Значение
--------

`number`.

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

Вывод `BackgroundFetchRegistration.uploadTotal` в консоль возвращает uploadTotal.


```js
console.log(bgFetch.uploadTotal);
```

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

| Specification |
| --- |
| Background Fetch # dom-backgroundfetchregistration-uploadtotal |

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

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

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Метод **`matchAll()`** интерфейса `BackgroundFetchRegistration` возвращает массив всех совпавших объектов `BackgroundFetchRecord`.

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


```js
matchAll(request);
matchAll(request, options);
```

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

`request`

`Request` для которого вы пытаетесь найти записи.
 Может быть объектом `Request` или URL.


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

Объект, который устанавливает параметры для операции `match`. Доступные параметры:

`ignoreSearch`

 Булево значение, которое определяет нужно ли игнорировать строку поиска в URL.
 Например, если параметр установлен как `true`, то подстрока `?value=bar`, которая является частью
 `http://foo.com/?value=bar`, будет игнорироваться при выполении сопоставления.
 Значение по умолчанию - `false`.


`ignoreMethod`

 Булево значение. Если оно установлено как `true`, то
 операциям сопоставления запрещается проверять метод `http` объекта `Request`.
 Если `false` (значение по умолчанию) только `GET` и `HEAD` разрешены.


`ignoreVary`

 Булево значение. Когда `true` сигнализирует, что заголовок `VARY`
 должен быть проигнорирован.
 Значение по умолчанию - `false`.



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

`Promise` результатом обработки которого будет массив всех совпавших объектов `BackgroundFetchRecord`.

### Exceptions

`InvalidStateError` `DOMException` (en-US)

Возвращается, если флаг `recordsAvailable` установлен как `false`, указывает на то, что запрос не выполняется.

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

Используйте `matchAll()` без параметров, чтобы вернуть все записи в фоновом запросе.


```js
const records = await bgFetch.matchAll();
console.log(records); // массив объектов BackgroundFetchRecord
```

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

| Specification |
| --- |
| Background Fetch # background-fetch-registration-match-all |

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

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