recursal/MDN huggingface dataset:
IDBIndex.locale
===============

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

The **`locale`** read-only property of the `IDBIndex` (en-US) interface returns the locale of the index (for example `en-US`, or `pl`) if it had a `locale` value specified upon its creation (see `createIndex()`'s optionalParameters (en-US).) Note that this property always returns the current locale being used in this index, in other words, it never returns `"auto"`.

Syntax
------


```js
var myIndex = objectStore.index("index");
console.log(myIndex.locale);
```

### Value

A `DOMString`.

Example
-------

In the following example we open a transaction and an object store, then get the index `lName` from a simple contacts database. We then open a basic cursor on the index using `IDBIndex.openCursor` (en-US) — this works the same as opening a cursor directly on an `ObjectStore` using `IDBObjectStore.openCursor` (en-US) except that the returned records are sorted based on the index, not the primary key.

The `locale` value is logged to the console.


```js
function displayDataByIndex() {
  tableEntry.innerHTML = "";
  var transaction = db.transaction(["contactsList"], "readonly");
  var objectStore = transaction.objectStore("contactsList");

  var myIndex = objectStore.index("lName");
  console.log(myIndex.locale);

  myIndex.openCursor().onsuccess = function (event) {
    var cursor = event.target.result;
    if (cursor) {
      var tableRow = document.createElement("tr");
      tableRow.innerHTML =
        "<td>" +
        cursor.value.id +
        "</td>" +
        "<td>" +
        cursor.value.lName +
        "</td>" +
        "<td>" +
        cursor.value.fName +
        "</td>" +
        "<td>" +
        cursor.value.jTitle +
        "</td>" +
        "<td>" +
        cursor.value.company +
        "</td>" +
        "<td>" +
        cursor.value.eMail +
        "</td>" +
        "<td>" +
        cursor.value.phone +
        "</td>" +
        "<td>" +
        cursor.value.age +
        "</td>";
      tableEntry.appendChild(tableRow);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}
```

Specification
-------------

Not currently part of any specification.

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

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

See also
--------

* Using IndexedDB
* Starting transactions: `IDBDatabase` (en-US)
* Using transactions: `IDBTransaction` (en-US)
* Setting a range of keys: `IDBKeyRange` (en-US)
* Retrieving and making changes to your data: `IDBObjectStore` (en-US)
* Using cursors: `IDBCursor` (en-US)
* Reference example: To-do Notifications (view example live.)
MouseEvent.pageX
================

**`MouseEvent.pageX`** - это свойство `MouseEvent` доступное только для чтения. Данное свойство возвращает значение равное горизонтальной координате, относительно всего документа. Это свойство учитывает любую горизонтальную прокрутку страницы. Первоначально это свойство было определено как длинное целое число. Модуль просмотра CSSOM переопределил его как double float. Подробнее см. Раздел «Совместимость с браузером».

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

var pos = event.pageX
```

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

var pageX = event.pageX;
pageX === event.clientX + (window.pageYOffset || document.body.scrollTop);
```

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

| Specification |
| --- |
| CSSOM View Module # dom-mouseevent-pagex |

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

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

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

* `UIEvent.pageX` (en-US)
MouseEvent.offsetX
==================

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

Свойство `MouseEvent.offsetX`, доступное только для чтения, показывает отступ курсора мыши по оси X от края целевого DOM узла.

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

var xOffset = instanceOfMouseEvent.offsetX;
```

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

Значение с плавающей запятой - double. Ранние версии спецификации определяли возвращаемое значение как целое число. Подробнее смотрите в разделе про совместимость с браузерами.

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

| Specification |
| --- |
| CSSOM View Module # dom-mouseevent-offsetx |

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

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

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

* `MouseEvent`
MouseEvent.screenX
==================

**`screenX`** - read-only свойство интерфейса события `MouseEvent`, соответствующее горизонтальной координате (смещению) указателя мыши в глобальных (экранных) координатах.

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

var x = instanceOfMouseEvent.screenX
```

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

Значение с плавающей точкой типа `double`. В ранних версиях этой спецификации определялось как целое число, соответствующее количеству пикселей. Подробнее см. раздел "Совместимость с браузерами".

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

Этом примере демонстрирует координаты вашей мыши в случае получения события `mousemove (en-US)`.

#### HTML


```html
<p>Подвигайте мышью, чтобы увидеть положение её курсора.</p>
<p id="screen-log"></p>
```


#### JavaScript


```js
let screenLog = document.querySelector("#screen-log");
document.addEventListener("mousemove", logKey);

function logKey(e) {
  screenLog.innerText = `
 Screen X/Y: ${e.screenX}, ${e.screenY}
 Client X/Y: ${e.clientX}, ${e.clientY}`;
}
```


#### Результат выполнения

### Обработка события

Когда вы отлавливаете события на окне, документе или других элементах, имеющих размер, вы можете получить координаты этого события (например, клика), и обработать его соответствующим образом, например, так, как в этом примере:


```js
function checkClickMap(e) {
  if (e.screenX < 50) doRedButton();
  if (50 <= e.screenX && e.screenX < 100) doYellowButton();
  if (e.screenX >= 100) doRedButton();
}
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-screenx |

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

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

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

* `MouseEvent`
* `screenY` (en-US)
* `clientX` / `clientY`
MouseEvent.ctrlKey
==================

Свойство только для чтения **`MouseEvent.ctrlKey`** возвращает true, когда клавиша Ctrl была нажата, а если нет - false.

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

var ctrlKeyPressed = instanceOfMouseEvent.ctrlKey
```

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

Boolean

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


```js
<html>
<head>
<title>Пример с ctrlKey</title>

<script type="text/javascript">
document.addEventListener('click', function(e) {
  console.log('Нажата клавиша Ctrl?', e.ctrlKey);
})
</script>
</head>

<body>
<p>
Кликните в любое место на странице и откройте консоль разработчика, чтобы узнать - нажата ли клавиша Ctrl?
</p>
</body>
</html>
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-ctrlkey |

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

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

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

* `MouseEvent`
MouseEvent.shiftKey
===================

**`MouseEvent.shiftKey`** атрибут только для чтения , который указывает была ли нажата клавиша `shift` . Возвращает (`true`) если нажата `shift`, (`false`) если нет.

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

var shiftKeyPressed = instanceOfMouseEvent.shiftKey
```

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

Логический

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


```js
<html>
<head>
<title>shiftKey example</title>

<script type="text/javascript">

function showChar(e){
  alert(
    "Key Pressed: " + String.fromCharCode(e.charCode) + "\n"
    + "charCode: " + e.charCode + "\n"
    + "SHIFT key pressed: " + e.shiftKey + "\n"
    + "ALT key pressed: " + e.altKey + "\n"
  );
}

</script>
</head>

<body onkeypress="showChar(event);">
<p>Нажмите на любую символьную клавишу удерживая или не удерживая клавишу SHIFT.<br />
Вы также можете использовать клавишу SHIFT вместе с клавишей ALT.</p>
</body>
</html>
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-shiftkey |

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

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

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

* `MouseEvent`
MouseEvent.clientX
==================

**`MouseEvent.clientX`** свойство доступное только для чтения. Это свойство является горизонтальной координатой в пределах клиентской области приложения, на которой произошло событие (в отличие от координат внутри страницы). Для примера, нажатие в верхнем левом углу клиентской области будет всегда приводить к событию со значением свойства `clientX` равным 0, независимо от того, прокручена страницы по горизонтали или нет.

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

var x = instanceOfMouseEvent.clientX
```

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

Числовое значение горизонтальной координаты

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


```html
<!doctype html>
<html>
  <head>
    <title>Пример для clientX\clientY</title>

    <script>
 function showCoords(evt) {
 alert(
 "clientX value: " +
 evt.clientX +
 "\n" +
 "clientY value: " +
 evt.clientY +
 "\n",
 );
 }
 </script>
  </head>

  <body onmousedown="showCoords(event)">
    <p>Для показа координат мышки нажмите в любом месте страницы.</p>
  </body>
</html>
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-clientx |

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

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

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

* `MouseEvent`
* `clientY`
* `screenX` / `screenY` (en-US)
MouseEvent.buttons
==================

Свойство **`MouseEvent.buttons`** доступно только для чтения. Оно показывает, какие клавиши мыши (или другого устройства ввода) были нажаты при срабатывании события.Для каждой нажатой кнопки есть своё уникальное битовое значение (см. ниже раздел "Возвращаемые значения"). Если нажаты несколько кнопок одновременно, значения суммируются, создавая новое значение. Например, если нажата вторая кнопка (2 или 000010 в двоичном коде) вместе со средней (4 или 000100 в двоичном коде), значение будет равно 6 (2 + 4) или 000110 в двоичном коде.

**Примечание:** Не путайте это свойство со свойством `MouseEvent.button`. Текущее свойство `MouseEvent.buttons` показывает состояние нажатых кнопок при любом событии мыши, а свойство `MouseEvent.button` указывает на события, произошедшие в результате нажатия/отпускания кнопок мыши.

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

var buttonPressed = instanceOfMouseEvent.buttons
```

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

Целое число, представляющее одну или несколько кнопок. При одновременном нажатии нескольких кнопок значения объединяются (например, 3 = первая (1) + вторая (2) кнопки мыши):

* `0`: кнопки не нажаты или не инициализированы;
* `1`: первая кнопка (обычно левая);
* `2`: вторая кнопка (обычно правая);
* `4`: дополнительная кнопка (обычно средняя или колёсико мыши);
* `8`: четвёртая кнопка (как правило, кнопка "Назад" браузера);
* `16` : пятая кнопка (как правило, кнопка "Вперёд" браузера).
Спецификации
------------

| Specification |
| --- |
| UI Events # dom-mouseevent-buttons |

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

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

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

* `MouseEvent`
MouseEvent.clientY
==================

**`MouseEvent.clientY`** свойство доступное только для чтения. Это свойство является вертикальной координатой в пределах клиентской области приложения, на которой произошло событие (в отличие от координат внутри страницы). Для примера, нажатие в верхнем левом углу клиентской области будет всегда приводить к событию со значением свойства `clientY` равным 0, независимо от того, прокручена страницы по вертикали или нет.

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

var y = instanceOfMouseEvent.clientY
```

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

Числовое значение вертикальной координаты

Example
-------


```html
<!doctype html>
<html>
  <head>
    <title>Пример для clientX\clientY</title>

    <script>
 function showCoords(evt) {
 alert(
 "clientX value: " +
 evt.clientX +
 "\n" +
 "clientY value: " +
 evt.clientY +
 "\n",
 );
 }
 </script>
  </head>

  <body onmousedown="showCoords(event)">
    <p>Для показа координат мышки нажмите в любом месте страницы.</p>
  </body>
</html>
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-clienty |

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

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

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

* `MouseEvent`
* `clientX`
* `screenX` / `screenY` (en-US)
MouseEvent.button
=================

**`MouseEvent.button`** свойство доступное только для чтения, возвращает значение, соответствующее нажатой кнопки мыши, которое инициировало событие.

Это свойство предоставляет информацию только о том, какая кнопка или несколько кнопок были нажаты или отпущены для инициации события, и не имеет отношения к таким событиям как `mouseenter (en-US)`, `mouseleave (en-US)`, `mouseover (en-US)`, `mouseout (en-US)` или `mousemove (en-US)`.

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

**Примечание:** Не путайте это свойство со свойством `MouseEvent.buttons`, которое содержит значения, соответствующие нажатым кнопкам мыши для всех типов событий мыши.

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

var buttonPressed = instanceOfMouseEvent.button
```

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

Число, соответствующее нажатой кнопке:

* `0`: Нажата основная кнопка. Левая кнопка мыши или переназначенная пользователем другая кнопка
* `1`: Нажата вспомогательная кнопка. Колёсико или средняя кнопка мыши, если она есть
* `2`: Нажата вторичная кнопка. Правая кнопка мыши
* `3`: Нажата четвёртая кнопка мыши. Обычно кнопка браузера *Назад*
* `4`: Нажата пятая кнопка мыши. Обычно кнопка браузера *Вперёд*

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

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


```js
<script>
var whichButton = function (e) {
    // Handle different event models
    var e = e || window.event;
    var btnCode;

    if ('object' === typeof e) {
        btnCode = e.button;

        switch (btnCode) {
            case 0:
                console.log('Нажата левая кнопка.');
            break;

            case 1:
                console.log('Нажата средняя кнопка или колёсико.');
            break;

            case 2:
                console.log('Нажата правая кнопка.');
            break;

            default:
                console.log('Неопределённое событие: ' + btnCode);
        }
    }
}
</script>

<button onmouseup="whichButton(event);" oncontextmenu="event.preventDefault();">Нажмите кнопку мыши...</button>
```

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

| Specification |
| --- |
| UI Events # dom-mouseevent-button |

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

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

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

* `"MouseEvent"`
AbortController.abort()
=======================

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

Метод `abort()` интерфейса `AbortController` прерывает DOM запрос (например Fetch запрос) до его завершения. Это позволяет прервать fetch запросы, использование любого ответа `Body` и потоков.

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


```js
controller.abort();
```

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

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

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

Не возвращает.

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

В следующем фрагменте мы будем загружать видео используя Fetch API.

Сначала мы создаём контроллер с помощью конструктора `AbortController()`, а затем получаем ссылку на связанный объект `AbortSignal` используя свойство `AbortController.signal`.

Когда fetch запрос инициируется, мы передаём `AbortSignal` в качестве опции внутрь объекта параметров запроса (см. `{signal}` ниже). Это связывает сигнал и контроллер с fetch запросом и позволяет нам прервать его, вызвав `AbortController.abort()`, как показано ниже во втором обработчике событий.


```js
var controller = new AbortController();
var signal = controller.signal;

var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');

downloadBtn.addEventListener('click', fetchVideo);

abortBtn.addEventListener('click', function() {
  controller.abort();
  console.log('Загрузка прервана');
});

function fetchVideo() {
  ...
  fetch(url, {signal}).then(function(response) {
    ...
  }).catch(function(e) {
    reports.textContent = 'Ошибка загрузки: ' + e.message;
  })
}
```


**Примечание:** Когда `abort()` вызывается, `fetch()` промис отклоняется с `AbortError`.

Вы можете найти полный работающий пример на GitHub — см. abort-api (увидеть работу в живую).

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

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

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

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

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

* Fetch API
AbortController.signal
======================

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

> 
> \*\*Примечание:\*\*Это свойство только для чтения.
> 
> 
> 

Свойство **`signal`** интерфейса `AbortController` возвращает экземпляр объекта `AbortSignal`, который может быть использован для связи/прерывания DOM запроса по желанию.

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


```js
var signal = abortController.signal;
```

### Значение

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

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

В следующем фрагменте мы будем загружать видео используя Fetch API.

Сначала мы создаём контроллер с помощью конструктора `AbortController()`, а затем получаем ссылку на связанный объект `AbortSignal` используя свойство `AbortController.signal`.

Когда fetch запрос инициируется, мы передаём `AbortSignal` в качестве опции внутрь объекта параметров запроса (см. `{signal}` ниже). Это связывает сигнал и контроллер с fetch запросом и позволяет нам прервать его, вызвав `AbortController.abort()`, как показано ниже во втором обработчике событий.


```js
var controller = new AbortController();
var signal = controller.signal;

var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');

downloadBtn.addEventListener('click', fetchVideo);

abortBtn.addEventListener('click', function() {
  controller.abort();
  console.log('Загрузка прервана');
});

function fetchVideo() {
  ...
  fetch(url, {signal}).then(function(response) {
    ...
  }).catch(function(e) {
    reports.textContent = 'Ошибка загрузки: ' + e.message;
  })
}
```


**Примечание:** Когда `abort()` вызывается, промис `fetch()` отклоняется с `AbortError`.

Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую).

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-abortcontroller-signal② |

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

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

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

* Fetch API
AbortController.AbortController()
=================================

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

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

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


```js
var controller = new AbortController();
```

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

Нет.

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

В следующем фрагменте мы будем загружать видео используя Fetch API.

Сначала мы создаём контроллер с помощью конструктора `AbortController()`, а затем получаем ссылку на связанный объект `AbortSignal` используя свойство `AbortController.signal`.

Когда fetch запрос инициируется, мы передаём `AbortSignal` в качестве опции внутрь объекта параметров запроса (см. `{signal}` ниже). Это связывает сигнал и контроллер с fetch запросом и позволяет нам прервать его, вызвав `AbortController.abort()`, как показано ниже во втором обработчике событий.


```js
var controller = new AbortController();
var signal = controller.signal;

var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');

downloadBtn.addEventListener('click', fetchVideo);

abortBtn.addEventListener('click', function() {
  controller.abort();
  console.log('Загрузка прервана');
});

function fetchVideo() {
  ...
  fetch(url, {signal}).then(function(response) {
    ...
  }).catch(function(e) {
    reports.textContent = 'Ошибка загрузки: ' + e.message;
  })
}
```


**Примечание:** Когда `abort()` вызывается, `fetch()` промис отклоняется с `AbortError`.

Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую).

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

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

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

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

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

* Fetch API