recursal/MDN huggingface dataset:
Window.moveTo()
===============

Метод **`moveTo()`** интерфейса `Window` перемещает текущее окно в указанные координаты.

**Примечание:** Эта функция перемещает окно к абсолютному положению. В свою очередь, `window.moveBy()` перемещает окно относительно текущего положения.

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

window.moveTo(x, y)
```

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

* `x` горизонтальная координата, в которую будет произведено перемещение.
* `y` вертикальная координата, в которую будет произведено перемещение.
Пример
------

Этот пример перемещает окно в левый верхний угол экрана.


```js
function origin() {
  window.moveTo(0, 0);
}
```

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

| Specification |
| --- |
| CSSOM View Module # dom-window-moveto |

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

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

Начиная с Firefox 7 сайты не могут перемещать окно в следующих случаях:

1. Вы не можете переместить окно или вкладку, которое было создано не с помощью `Window.open()` (en-US).
2. Вы не можете переместить окно или вкладку, когда окно имеет более одной вкладки.
Смотрите также
--------------

* `Window.moveBy()`
Window.self
===========

Свойство **`Window.self`** доступно только для чтения и возвращает объект window в виде объекта `WindowProxy`. Для доступа к данному свойству возможно использовать точечную нотацию и объект `window` (`window.self`) или переменную `self`. Преимущество доступа через переменную `self` заключается в том, что её можно использовать в окружениях, в которых нет window, например `Web Workers`. Использование `self` даёт возможность обращаться к глобальному объекту не только в окружениях где есть window (в таком случае `self` эквивалентна `window.self`), но также в воркерах (в случае воркера `self` эквивалентна `WorkerGlobalScope.self` (en-US)).

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

В следующем примере `window.self` точно также может быть заменено на `window`.


```js
if (window.parent.frames[0] != window.self) {
  // этот window не является первым frame в списке
}
```


Кроме того, когда код выполняется в активном документе браузера, объект `window` является ссылкой на текущий глобальный объект и таким образом:


```js
var w1 = window;
var w2 = self;
var w3 = window.window;
var w4 = window.self;
// Значения переменных w1, w2, w3, w4 строго равны между собой
// Но только переменная w2 будет работать в workers
```

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

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

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

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

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

* Its `Worker` equivalent, `WorkerGlobalScope.self` (en-US).
window.cancelAnimationFrame()
=============================

Метод **`window.cancelAnimationFrame()`** останавливает анимацию, запланированную с помощью `window.requestAnimationFrame()`.

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

window.cancelAnimationFrame(requestID);
```

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

`requestID`

Значение, которое возвращает `window.requestAnimationFrame()` при запросе callback.

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


```js
var requestAnimationFrame =
  window.requestAnimationFrame ||
  window.mozRequestAnimationFrame ||
  window.webkitRequestAnimationFrame ||
  window.msRequestAnimationFrame;

var cancelAnimationFrame =
  window.cancelAnimationFrame || window.mozCancelAnimationFrame;

var start = window.mozAnimationStartTime; // Поддерживается только FF. В других браузерах можно использовать Date.now().

var myReq;

function step(timestamp) {
  var progress = timestamp - start;
  d.style.left = Math.min(progress / 10, 200) + "px";
  if (progress < 2000) {
    // Важно обновлять requestId при каждом запросе requestAnimationFrame
    myReq = requestAnimationFrame(step);
  }
}
myReq = requestAnimationFrame(step);
// остановка с использованием последнего requestId
cancelAnimationFrame(myReq);
```

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

| Specification |
| --- |
| HTML Standard # animationframeprovider-cancelanimationframe |

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

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

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

* `window.mozAnimationStartTime`
* `window.requestAnimationFrame()`
Window.document
===============

Описание
--------

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

**Примечание:** Firefox 3 вносит изменения в правила безопасности для windows' документов, чтобы только домен, на котором они расположены, имел доступ к документам. И хотя это может сломать некоторые существующие сайты, Firefox 3 и Internet Explorer 7 сделали этот шаг, что приводит к улучшению безопасности.

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

doc = window.document
```

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

* `doc` является ссылкой на объект document (en-US).
Пример
------


```html
<!doctype html>
<html>
  <head>
    <title>Hello, World!</title>
  </head>
  <body>
    <script type="text/javascript">
 var doc = window.document;
 console.log(doc.title); // Hello, World!
 </script>
  </body>
</html>
```

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

| Specification |
| --- |
| HTML Standard # dom-document-dev |
WindowEventHandlers.onafterprint
================================

Свойство `WindowEventHandlers.onafterprint` устанавливает и возвращает обработчик `event handler` события `afterprint (en-US)` в текущем окне.

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

window.onafterprint = код обработки события
```

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

Некоторые браузеры (включая Firefox 6 и его более поздние версии, и Internet Explorer) генерируют события `beforeprint` и `afterprint`, чтобы дать сигнал о процессе распечатки страницы. Вы можете использовать эти события, чтобы повлиять на интерфейс пользователя во время печати (например, показать или скрыть отдельные его части).

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

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

| Specification |
| --- |
| HTML Standard # event-afterprint |
| HTML Standard # handler-window-onafterprint |

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

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

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

* `window.print`
* `window.onbeforeprint` (en-US)
* Printing (en-US)
Window.moveBy()
===============

Метод **`moveBy()`** интерфейса `Window` перемещает текущее окно на указанное количество.

**Примечание:** Эта функция перемещает окно относительно текущего положения. В свою очередь, `window.moveTo()` перемещает к абсолютному значению.

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

window.moveBy(deltaX, deltaY)
```

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

* `deltaX` количество пикселей, на которое будет перемещено окно по горизонтали. Положительное значение перемещает вправо, а отрицательное перемещает влево.
* `deltaY` количество пикселей, на которое будет перемещено окно по вертикали. Положительное значение перемещает вниз, а отрицательное перемещает вверх.
Пример
------

Этот пример перемещает окно на 10 пикселей вправо и на 10 пикселей вверх.


```js
function budge() {
  moveBy(10, -10);
}
```

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

| Specification |
| --- |
| CSSOM View Module # dom-window-moveby |

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

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

Начиная с Firefox 7 сайты не могут перемещать окно в следующих случаях:

1. Вы не можете переместить окно или вкладку, которое было создано не с помощью`Window.open()` (en-US).
2. Вы не можете переместить окно или вкладку, когда окно имеет более одной вкладки.
Смотрите также
--------------

* `Window.moveTo()`
Window.screenX
==============

Свойство **`Window.screenX`** только для чтения возвращает горизонтальное расстояние в пикселях CSS левой границы окна просмотра браузера пользователя до левой части экрана.

**Примечание:** Псевдоним `screenX` был реализован во всех современных браузерах - `Window.screenLeft` (en-US). Первоначально это поддерживалось только в IE, но было введено повсеместно из-за популярности.

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

leftWindowPos = window.screenX
```

### Возвращает

Число, равное количеству пикселей CSS от левого края окна просмотра браузера до левого края экрана.

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

В нашем примере screenleft-screentop вы увидите холст, на котором нарисован круг. В этом примере мы используем `Window.screenLeft` (en-US)/`Window.screenTop` (en-US) плюс `Window.requestAnimationFrame ()`, чтобы постоянно перерисовывать круг в том же физическом положении на экране, даже если позиция окна перемещается.


```js
initialLeft = window.screenLeft + canvasElem.offsetLeft;
initialTop = window.screenTop + canvasElem.offsetTop;

function positionElem() {
  let newLeft = window.screenLeft + canvasElem.offsetLeft;
  let newTop = window.screenTop + canvasElem.offsetTop;

  let leftUpdate = initialLeft - newLeft;
  let topUpdate = initialTop - newTop;

  ctx.fillStyle = "rgb(0, 0, 0)";
  ctx.fillRect(0, 0, width, height);
  ctx.fillStyle = "rgb(0, 0, 255)";
  ctx.beginPath();
  ctx.arc(
    leftUpdate + width / 2,
    topUpdate + height / 2 + 35,
    50,
    degToRad(0),
    degToRad(360),
    false,
  );
  ctx.fill();

  pElem.textContent =
    "Window.screenLeft: " +
    window.screenLeft +
    ", Window.screenTop: " +
    window.screenTop;

  window.requestAnimationFrame(positionElem);
}

window.requestAnimationFrame(positionElem);
```


Они работают точно так же, как `screenX` / `screenY`.

Также в код мы включили фрагмент, который определяет, поддерживается ли `screenLeft`, и, если нет, заполняет поли в `screenLeft` / `screenTop`, используя `screenX` / `screenY`.


```js
if (!window.screenLeft) {
  window.screenLeft = window.screenX;
  window.screenTop = window.screenY;
}
```

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

| Specification |
| --- |
| CSSOM View Module # dom-window-screenx |

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

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

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

* `window.screenLeft` (en-US)
* `Window.screenY` (en-US)
WindowEventHandlers.onunload
============================

Описание
--------

Событие `unload` возникает когда window выгружает своё содержимое и ресурсы. Удаление ресурсов происходит *после* возникновения события `unload`.

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

window.onunload = funcRef;
```


* `funcRef` ссылка на функцию.
Примечание
----------

Using this event handler in your page prevents Firefox 1.5 from caching the page in the in-memory bfcache. Смотрите Использование кеширования в Firefox 1.5 для получения более детальной информации.

Браузеры, оснащённые блокировщиками всплывающих окон будут игнорировать все вызовы метода `window.open()` внутри функции обработчика события `onunload`.

You *can* and *should* handle this event through `window.addEventListener()` and the `unload (en-US)` event. More documentation is available there.

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

| Specification |
| --- |
| HTML Standard # event-unload |
| HTML Standard # handler-window-onunload |

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

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

Данный метод очищает действие, определённое `window.setImmediate` (en-US).

**Примечание:** На текущий момент данный метод находится на стадии предложения на внедрение, не является стандартом и имплементирован только в последних сборках Internet Explorer.

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

window.clearImmediate(immediateID)
```


где immediateID это идентификатор, возвращаемый из `window.setImmediate` (en-US).

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

var immediateID = setImmediate(function () {
  // Выполнение некоего кода
}

document.getElementById("button").addEventListener(function () {
  clearImmediate(immediateID);
}, false);
```

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

#### No specification found

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

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

`window.setImmediate` (en-US)
Window.scrollTo()
=================

Описание
--------

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

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

window.scrollTo(x-coord, y-coord)
window.scrollTo(options)
```

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

* `x-coord` пиксель по горизонтальной оси документа, будет отображён вверху слева.
* `y-coord` пиксель по вертикальной оси документа, будет отображён вверху слева.
* `options` объект с тремя возможными параметрами:
    + `top`, то же, что и `y-coord`
    + `left`, то же, что и `x-coord`
    + `behavior`, строка, содержащая либо `smooth`, `instant`, либо `auto`; по умолчанию `auto`
Пример
------


```js
window.scrollTo(0, 1000);

// этот код меняет поведение прокрутки на "smooth"
window.scrollTo({
  top: 1000,
  behavior: "smooth",
});
```

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

Эта функция выполняет то же, что и window.scroll (en-US). Остальные функции, связанные с прокруткой window.scrollBy (en-US), window.scrollByLines (en-US), и window.scrollByPages (en-US).

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

| Specification |
| --- |
| CSSOM View Module # dom-window-scrollto |
Window: свойство navigator
==========================

Доступное только для чтения свойство `Window.navigator` возвращает ссылку на объект `Navigator`, у которого есть методы и свойства приложения, запустившего скрипт.

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

Объект `navigator`.

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

### Пример 1: определение браузера


```js
function getBrowserName(userAgent) {
  // Порядок важен, также возможно ложное срабатывание для браузеров не включённых в список

  if (userAgent.includes("Firefox")) {
    // "Mozilla/5.0 (X11; Linux i686; rv:104.0) Gecko/20100101 Firefox/104.0"
    return "Mozilla Firefox";
  } else if (userAgent.includes("SamsungBrowser")) {
    // "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36"
    return "Samsung Internet";
  } else if (userAgent.includes("Opera") || userAgent.includes("OPR")) {
    // "Mozilla/5.0 (Macintosh; Intel Mac OS X 12\_5\_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 OPR/90.0.4480.54"
    return "Opera";
  } else if (userAgent.includes("Edge")) {
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
    return "Microsoft Edge (Legacy)";
  } else if (userAgent.includes("Edg")) {
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 Edg/104.0.1293.70"
    return "Microsoft Edge (Chromium)";
  } else if (userAgent.includes("Chrome")) {
    // "Mozilla/5.0 (X11; Linux x86\_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
    return "Google Chrome or Chromium";
  } else if (userAgent.includes("Safari")) {
    // "Mozilla/5.0 (iPhone; CPU iPhone OS 15\_6\_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Mobile/15E148 Safari/604.1"
    return "Apple Safari";
  } else {
    return "unknown";
  }
}

const browserName = getBrowserName(navigator.userAgent);
console.log(`Вы используете: ${browserName}`);
```

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

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

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

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

`Свойство sessionStorage` позволяет получить доступ к объекту `Storage` текущей сессии. Свойство sessionStorage очень похоже на свойство `Window.localStorage`, единственное различие заключается в том, что все данные, сохранённые в localStorage не имеют определённого времени жизни, а данные в sessionStorage очищаются в момент окончания сессии текущий страницы. Сессия страницы остаётся активной все время пока окно браузера открыто и сохраняется между перезагрузками страниц. **Открытие той же страницы в новом окне браузера или новой вкладке приводит к созданию новой сессии страницы,** что отличается от поведения session cookies\*\*.\*\*

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


```js
// Сохранение данных в sessionStorage
sessionStorage.setItem("key", "value");

// Получение данных из sessionStorage
var data = sessionStorage.getItem("key");
```

### Значение

Объект типа `Storage`.

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

Следующий код получает доступ к объекту `Storage` текущей сессии домена и добавляет данные в него используя `Storage.setItem()`.


```js
sessionStorage.setItem("myCat", "Tom");
```


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


```js
// Получаем ссылку на текстовое поле,
// изменение которого будем отслеживать.
var field = document.getElementById("field");

// Проверяем наличие значения 'autosave'
// (это может произойти только если страница будет случайно обновлена)
if (sessionStorage.getItem("autosave")) {
  // Восстанавливаем содержимое текстового поля
  field.value = sessionStorage.getItem("autosave");
}

// Отслеживаем все изменения в текстовом поле
field.addEventListener("change", function () {
  // И сохраняем их в объект session storage
  sessionStorage.setItem("autosave", field.value);
});
```


**Примечание:** Обратитесь к статье Using the Web Storage API, чтобы изучить полный пример.

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

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

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

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

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

* Using the Web Storage API
* `Window.localStorage`
popstate
========

Событие `popstate` вызывается, когда изменяется активная запись истории. Если изменение записи истории было вызвано методом `history.pushState()` или `history.replaceState()`, то состояние события `popstate` будет содержать `state` копии входящего в историю объекта

Обратите внимание, `history.pushState()` или `history.replaceState()` не вызывают событие `popstate`. Событие `popstate` будет вызвано при совершении действий в браузере, таких как нажатие кнопок "Вперёд" или "Назад" (или при вызове `history.back()` или `history.forward()` из JavaScript).

Браузеры работают с событием `popstate` по разному. Chrome (prior to v34) и Safari всегда вызывают `popstate` по окончании загрузки страницы, а Firefox не делает этого.

General info
------------

Specification

HTML5

Interface

PopStateEvent

Bubbles

Yes

Cancelable

No

Target

defaultView

Default Action

None

Properties
----------

| Property | Type | Description |
| --- | --- | --- |
| `target` Только для чтения  | `EventTarget` | The browsing context (`window`). |
| `type` Только для чтения  | `DOMString` | The type of event. |
| `bubbles` Только для чтения  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Только для чтения  | `Boolean` | Whether the event is cancellable or not. |
| `state` Только для чтения  | *any* | The current history entry's state object (if any). |

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

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

Example
-------

A page at `http://example.com/example.html` running the following code will generate logs as indicated:


```js
window.onpopstate = function (event) {
  console.log(
    "location: " +
      document.location +
      ", state: " +
      JSON.stringify(event.state),
  );
};
history.pushState({ page: 1 }, "title 1", "?page=1");
history.pushState({ page: 2 }, "title 2", "?page=2");
history.replaceState({ page: 3 }, "title 3", "?page=3");
history.back(); // Logs "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // Logs "location: http://example.com/example.html, state: null
history.go(2); // Logs "location: http://example.com/example.html?page=3, state: {"page":3}
```


Note that even though the original history entry (for `http://example.com/example.html`) has no state object associated with it, a `popstate` event is still fired when we activate that entry after the second call to `history.back()`.

Related Events
--------------

* `hashchange` (en-US)
See Also
--------

* Manipulating the browser history (the History API)
Window.frames
=============

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

Syntax
------
```

frameList = window.frames;
```


* `frameList` is a list of frame objects. It is similar to an array in that it has a `length` property and its items can be accessed using the `[i]` notation.
* `frameList === window` evaluates to true.
* Each item in the window.frames pseudo-array represents the window object corresponding to the given <frame>'s or <iframe>'s content, not the (i)frame DOM element (i.e., `window.frames[0]` is the same thing as `document.getElementsByTagName("iframe")[0].contentWindow`).
* For more details about the returned value, refer to this thread on mozilla.dev.platform [dead link].
Example
-------


```js
var frames = window.frames; // or // var frames = window.parent.frames;
for (var i = 0; i < frames.length; i++) {
  // do something with each subframe as frames[i]
  frames[i].document.body.style.background = "red";
}
```

Specifications
--------------

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

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

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

Описание
--------

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

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

window.print()
```

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

| Specification |
| --- |
| HTML Standard # printing |

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

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

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

* Printing
* `window.onbeforeprint` (en-US)
* `window.onafterprint` (en-US)