recursal/MDN huggingface dataset:
Window.navigator
================

A propriedade somente leitura `Window.navigator` retorna uma referência para o objeto `Navigator` (en-US), que pode ser consultada para obter informações sobre a aplicação executando o script.

Sintaxe
-------
```

navigatorObject = window.navigator
```

Exemplos
--------

### Exemplo #1: Detecta o navegador e retorna uma string


```js
var sBrowser,
  sUsrAg = navigator.userAgent;

if (sUsrAg.indexOf("Chrome") > -1) {
  sBrowser = "Google Chrome";
} else if (sUsrAg.indexOf("Safari") > -1) {
  sBrowser = "Apple Safari";
} else if (sUsrAg.indexOf("Opera") > -1) {
  sBrowser = "Opera";
} else if (sUsrAg.indexOf("Firefox") > -1) {
  sBrowser = "Mozilla Firefox";
} else if (sUsrAg.indexOf("MSIE") > -1) {
  sBrowser = "Microsoft Internet Explorer";
}

alert("Você está utilizando: " + sBrowser);
```

### Exemplo #2: Detecta o navegador e retorna um índice


```js
function getBrowserId() {
  var aKeys = ["MSIE", "Firefox", "Safari", "Chrome", "Opera"],
    sUsrAg = navigator.userAgent,
    nIdx = aKeys.length - 1;

  for (nIdx; nIdx > -1 && sUsrAg.indexOf(aKeys[nIdx]) === -1; nIdx--);

  return nIdx;
}

console.log(getBrowserId());
```

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Sumário
-------

Essa propriedade (read-only) indica se a janela referenciada está ou não fechada.

Sintaxe
-------
```

isClosed = windowRef.closed;
```


`isClosed`

Um booleano. Valores possíveis:

* `true`: A janela foi fechada.
* `false`: A janela está aberta.

Exemplos
--------

### Mudar a URL de uma janela a partir de um popup

O seguinte exemplo demonstra com uma janela de popup pode alterar a URL da janela que abriu ela. Antes de tentarmos mudar a URL da janela que a abriu, verificamos se a janela atual tem uma janela pai que a abriu usando a propriedade window.opener (en-US) e que esta não está fechada:


```js
// Verifique se o opener existe e não está fechado
if (window.opener && !window.opener.closed) {
  window.opener.location.href = "http://www.mozilla.org";
}
```


Note que popups podem somente acessar a janela que os abriu.

### Atualizando um popup anteriormente aberto

Neste exemplo, a função `refreshPopupWindow()` chama o método `reload` do objeto `location` do popup para atualizar seus dados. Se o popup não foi aberto ainda ou o usuário o fechou, uma nova janela é aberta.


```js
var popupWindow = null;

function refreshPopupWindow() {
  if (popupWindow && !popupWindow.closed) {
    // popupWindow está aberto, atualize-o
    popupWindow.location.reload(true);
  } else {
    // Abra uma nova janela de popup
    popupWindow = window.open("popup.html", "dataWindow");
  }
}
```

Especificações
--------------

| Specification |
| --- |
| HTML Standard # dom-window-closed-dev |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Window: método scroll()
=======================

O método **`Window.scroll()`** rola a janela para um local específico no documento.

Sintaxe
-------


```js
scroll(x-coord, y-coord)
scroll(options)
```

### Parâmetros

* `x-coord` é o pixel ao longo do eixo horizontal do documento que você
 deseja exibido no canto superior esquerdo.
* `y-coord` é o pixel ao longo do eixo vertical do documento que você
 deseja exibido no canto superior esquerdo.

- ou -

`options`

Um dicionário contendo os seguintes parâmetros:

`top`

Especifica o número de pixels ao longo do eixo Y para rolar a janela ou elemento.

`left`

Especifica o número de pixels ao longo do eixo X para rolar a janela ou elemento.

`behavior`

Determina se a rolagem é instantânea ou animada suavemente. Esta opção é uma string que deve assumir um dos seguintes valores:

* `smooth`: a rolagem deve ser animada suavemente
* `instant`: a rolagem deve acontecer instantaneamente em um único salto
* `auto`: o comportamento de rolagem é determinado pelo valor calculado de `scroll-behavior`


### Valor de retorno

Nenhum (`undefined`).

Exemplos
--------


```html
<!-- coloque o centésimo pixel vertical no topo da janela -->

<button onclick="scroll(0, 100);">clique para rolar até o 100º pixel</button>
```


Usando `options`:


```js
window.scroll({
  top: 100,
  left: 100,
  behavior: "smooth",
});
```

Notas
-----

`Window.scrollTo()` é efetivamente o mesmo que este método. Para parente
 rolagem, veja `Window.scrollBy()`, `Window.scrollByLines()` (en-US),
 e `Window.scrollByPages()`.

 Para elementos de rolagem, consulte `Element.scrollTop` e
 `Element.scrollLeft`.

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Veja também
-----------

* `Window.scrollByLines()` (en-US)
* `Window.scrollByPages()`
* `Element.scrollIntoView()`
Window.alert
============

O método **`Window.alert()`** mostra uma caixa de diálogo de aviso com o conteúdo opcionalmente especificado e um botão OK.

Sintaxe
-------
```

window.alert(message);
```


* `message` é uma string opcional com o texto que você quer exibir na caixa de diálogo, ou, ainda, um objeto a ser convertido em string e exibido.
Exemplo
-------


```js
window.alert("Hello world!");
```


resulta em:

![Image:AlertHelloWorld.png](/files/130/AlertHelloWorld.png)

Notas
-----

A caixa de diálogo de aviso deve ser utilizada para mensagens que não requeiram nenhuma resposta da parte do usuário, a não ser o reconhecimento da mensagem.

The following text is shared between this article, DOM:window.prompt and DOM:window.confirmCaixas de diálogo são janelas modais - elas evitam que o usuário acesse o resto da interface do programa sem ter fechado a caixa de diálogo. Por essa razão, você não deve utilizar excessivamente nenhuma função que crie caixas de diálogo (ou janelas modais).

Usuários do Chrome (por exemplo, em extensões) devem utilizar os métodos da interface `nsIPromptService` como alternativa.

O argumento agora é opcional conforme exigido na especificação.

Especificação
-------------

Especificado no HTML5.

Ver também
----------

* `confirm`
* `prompt`
* Para o Mozilla Chrome (en-US), veja `nsIPromptService.alert()` e `nsIPromptService.alertCheck()`
Window.length
=============

Resumo
------

Retorna o número de frames (tanto elementos `frame` ou `iframe`) dentro da janela.

Sintaxe
-------
```

quantidadeFrames = window.length;
```


* *quantidadeFrames* é o número de frames.
Exemplo
-------


```js
if (window.length) {
  // este é um documento com subframes
}
```

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Resumo
------

Retorna um novo objeto `MediaQueryList` (en-US) representando o resultado analisado da string media query (en-US) especificada.

Sintaxe
-------
```

mql = window.matchMedia(mediaQueryString)
```


onde `mediaQueryString` é uma string representando a media query para o qual retorna um novo objeto `MediaQueryList` (en-US).

Exemplo
-------


```js
if (window.matchMedia("(min-width: 400px)").matches) {
  /\* a viewport tem pelo menos 400 pixels de largura \*/
} else {
  /\* a viewport menos que 400 pixels de largura \*/
}
```


Este código permite-lhe lidar com as coisas de forma diferente quando a janela é muito estreita.

Veja Usando media queries a partir do código (en-US) para mais exemplos.

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Veja também
-----------

* Media queries (en-US)
* Usando media queries a partir do código (en-US)
* `MediaQueryList` (en-US)
* `MediaQueryListListener` (en-US)
Window.scrollY
==============

Sumário
-------

Retorna o número de pixels que o documento já rolou verticalmente.

Sintaxe
-------
```

var y = window.scrollY;
```


* y é o número atual de pixels que o documento rolou a partir do topo.
Exemplo
-------


```js
// verificar e ir para a segunda página
if (window.scrollY) {
  window.scroll(0, 0); // reinicia a posição do scroll para a posição superior esquerda do documento.
}

window.scrollByPages(1);
```

Notas
-----

Utilize esta propriedade para verificar se o documento já foi rolado quando funções de rolagem relativa, tais como `window.scrollBy`, `window.scrollByLines` (en-US), ou `window.scrollByPages`, forem utilizadas.

A propriedade `pageYOffset` é um alias para `scrollY`:


```js
window.pageYOffset == window.scrollY; // always true
```


For cross-browser compatibility, use `window.pageYOffset` instead of `window.scrollY`. **Additionally**, older versions of Internet Explorer (< 9) do not support either property and must be worked around by checking other non-standard properties. A fully compatible example:

Para compatibilidade cross-browser, utilize window.pageYOffset em vez de window.scrollY. Além disso, versões inferiores do Internet Explorer 9 não suportam ambas as propriedades, e deve ser contornado verificando outras propriedades não padronizadas.


```js
var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";

var x = supportPageOffset
  ? window.pageXOffset
  : isCSS1Compat
    ? document.documentElement.scrollLeft
    : document.body.scrollLeft;
var y = supportPageOffset
  ? window.pageYOffset
  : isCSS1Compat
    ? document.documentElement.scrollTop
    : document.body.scrollTop;
```

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Veja também
-----------

* `window.scrollX` (en-US)
WindowEventHandlers.onstorage
=============================

A propriedade **`WindowEventHandlers.onstorage`** contém um manipulador de eventos que executa quando o evento `storage (en-US)` dispara. Isto ocorre quando a área de armazenamento é mudada. (ex. um novo item é armazenado.)

Sintaxe
-------
```

windowObj.onstorage = function() { ... };
```

Exemplos
--------


```js
window.onstorage = function (e) {
  console.log(
    "The " +
      e.key +
      " key has been changed from " +
      e.oldValue +
      " to " +
      e.newValue +
      ".",
  );
};
```

Especificações
--------------

| Specification |
| --- |
| HTML Standard # event-storage |
| HTML Standard # handler-window-onstorage |

Compatibilidade com navegadores
-------------------------------

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

Resumo
------

Desloca o documento dentro da janela pelo valor fornecido.

Sintaxe
-------
```

window.scrollBy(X, Y);
```

### Parâmetros

* `X` é o deslocamento em pixels (px) para a rolagem horizontalmente.
* `Y` é o deslocamento em pixels (px) para a rolagem verticalmente.

Coordenadas positivas deslocarão para a direita e para baixo. Coordenadas negativas deslocarão para a esquerda e para cima.

Exemplo
-------
```

// Desloca a altura interna da janela
window.scrollBy(0, window.innerHeight);
```

Notas
-----

window.scrollBy (en-US) desloca uma quantidade específical enquanto window.scroll (en-US) desloca para uma posição absoluta no documento. Veja Também window.scrollByLines (en-US), window.scrollByPages (en-US)

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

O evento **hashchange** é disparado quando a *hash* da *window* muda. (ver `location.hash`).

Sintaxe
-------


```js
window.onhashchange = funcRef;
```


**ou:**


```html
<body onhashchange="funcRef();"></body>
```


**ou:**


```js
window.addEventListener("hashchange", funcRef, false);
```

### Parâmetros

`funcRef`

Referência a uma função

Exemplo
-------


```js
if ("onhashchange" in window) {
  alert("O browser têm suporte ao evento hashchange!");
}

function locationHashChanged() {
  if (location.hash === "#algointeressante") {
    algoInteressante();
  }
}

window.onhashchange = locationHashChanged;
```

O evento hashchange
-------------------

O evento hashchange disparado possui os seguintes campos

| Campo | Tipo | Descrição |
| --- | --- | --- |
| `newURL` | `DOMString` | A nova URL para a qual a janela está navegando. |
| `oldURL` | `DOMString` | A antiga URL da qual a janela veio. |

Especificações
--------------

| Specification |
| --- |
| HTML Standard # event-hashchange |
| HTML Standard # handler-window-onhashchange |

Compatibilidade com navegadores
-------------------------------

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

A propriedade **onfocus** retorna o código de manipulador de eventos *onFocus* no elemento atual.

Sintaxe
-------
```

element.onfocus = código de manipulação de eventos
```

Notas
-----

O evento *Focus* é gerado quando o usuario define o foco no elemento.

Oposta à MSIE, em que quase todos os tipos de elementos recebem o evento *focus*, em navegadores Gecko quase todos os tipos de elementos não funcionam com este evento.

Especificações
--------------

| Specification |
| --- |
| UI Events # event-type-focus |
| HTML Standard # handler-onfocus |

Compatibilidade com navegadores
-------------------------------

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

O evento `popstate` é disparado quando a entrada do histórico ativa é alterado. Se o histórico de entrada a ser ativado for criado por uma chamada `history.pushState()` ou for afetada por uma chamada `history.replaceState()`, a propriedade dos eventos `popstate` contém uma cópia do histórico de entrada do objeto.

Note que apenas chamando `history.pushState()` ou `history.replaceState()` não ira disparar um evento `popstate`. O evento `popstate` apenas é disparado após uma ação no navegador como um click no botão de voltar (ou chamando `history.back() por javascript`)

Navegadores tendem a lidar com o evento `popstate` diferentemente no carregamento da página. Chrome (anterior versão 34) e Safari sempre emitem um evento `popstate` no carregamento da página, mas o Firefox não.

Informação geral
----------------

Especificação

HTML5

Interface

PopStateEvent

Bubbles

Yes

Cancelable

No

Alvo

defaultView

Ação padrão

None

Propriedades
------------

| Property | Type | Description |
| --- | --- | --- |
| `target` Somente leitura  | `EventTarget` | The browsing context (`window`). |
| `type` Somente leitura  | `DOMString` | The type of event. |
| `bubbles` Somente leitura  | `Boolean` | Whether the event normally bubbles or not. |
| `cancelable` Somente leitura  | `Boolean` | Whether the event is cancellable or not. |
| `state` Somente leitura  | *any* | The current history entry's state object (if any). |

Compatiblidade com navegadores
------------------------------

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

Exemplo
-------

Um página no `http://example.com/example.html roda o código abaixo e irá gerar os logs indicados`


```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}
```


Observe que mesmo que a entrada do histórico inicial(para `http://example.com/example.html`) não tem nenhum estado associado a ele, um evento `popstate`é ainda disparado quando nós ativamos essa entrada após a segunda chamada para `history.back()`.

Eventos relacionados
--------------------

* `hashchange` (en-US)
Window.sessionStorage
=====================

A propriedade `sessionStorage` permite acessar um objeto tipo session `Storage`. A sessionStorage é similar ao `localStorage` (en-US), a única diferença é que enquanto os dados armazenados no `localStorage` não expiram, os dados no sessionstorage tem os seus dados limpos ao expirar a sessão da página. A sessão da página dura enquanto o browser está aberto e se mantém no recarregamento da página. **Abrir a página em uma nova aba ou nova janela irá gerar uma nova sessão,** o que diferencia de como os cookies trabalham\*\*.\*\*

Sintaxe
-------


```js
// Salva os dados na sessionStorage
sessionStorage.setItem("chave", "valor");

// Obtém os dados da sessionStorage
var data = sessionStorage.getItem("chave");
```

### Valor

Objeto `Storage`.

Exemplo
-------

O seguinte trecho acessa o objeto da sessão do domínio atual `Storage` e adiciona um item usando o `Storage.setItem()`.


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


O exemplo a seguir salva automaticamente o conteúdo da caixa de texto, e caso o browser seja acidentalmente recarregado, o conteúdo da caixa de texto é restaurado.


```js
// Obtem a caixa de texto que vamos rastrear
var field = document.getElementById("campo");

// Se tivermos um valor salvo automaticamente
// (isto só ocorrerá se a página for acidentalmente recarregada)
if (sessionStorage.getItem("autosave")) {
  // Restaura o conteúdo da caixa de texto
  field.value = sessionStorage.getItem("autosave");
}

// Verifica as mudanças que ocorrem na caixa de texto
field.addEventListener("change", function () {
  // E salva o resultado dentro de um objeto session storage
  sessionStorage.setItem("autosave", field.value);
});
```


**Nota:** Por favor use o artigo Using the Web Storage API para um exemplo completo.

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Veja também
-----------

* Using the Web Storage API
* Window.localStorage (en-US)
Window.fullScreen
=================

Sumário
-------

Esta propriedade indica se a janela está sendo exibida em modo de tela cheia ("*full screen*") ou não. Ela é confiável apenas no Gecko 1.9 (Firefox 3) e posteriores, veja as Notas abaixo.

Sintaxe
-------
```

isInFullScreen = windowRef.fullScreen;
```


Com "*chrome privileges*" (privilégios para acesso a funções de baixo nível), a propriedade é de leitura e escrita, caso contrário é de apenas leitura. Tenha em mente que se você tentar definir esta propriedade sem *chrome privileges*, isto não irá gerar uma excessão; ao invés disto, irá simples e silenciosamente falhar. Isto é para prevenir que *scripts* projetados para definir esta propriedade no Internet Explorer se quebrem.

Valor de Retorno
----------------

`isInFullScreen`

Um booleano. Valores possíveis:

* `true`: A janela está em modo de tela cheia.
* `false`: A janela não está em modo de tela cheia.

Exemplos
--------

{{todo}}Especificações
--------------

#### No specification found

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

Compatibilidade com navegadores
-------------------------------

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

Notas
-----

* Esta propriedade só é confiável no Mozilla 1.9 (Firefox 3) e posteriores. Mozilla 1.8 e anteriores têm esta propriedade, mas sempre retorna `false`, mesmo quando a janela está em modo de tela cheia (Erro do Firefox 127013).
* Alternar entre a janela normal e tela cheia irá disparar o evento "resize" na janela correspondente.
Window.scrollTo()
=================

Resumo
------

Realiza a rolagem para um conjunto de coordenadas em particular em um documento.

Sintaxe
-------
```

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

### Parâmetros

* `x-coord` é o pixel do eixo horizontal do documento que você quer exibir no canto superior esquerdo.
* `y-coord` é o pixel do eixo vertical do documento que você quer exibir no canto superior esquerdo.
Exemplo
-------


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

Notas
-----

Essa função é efetivamente a mesma que window.scroll (en-US). Para rolagem relativa, veja window.scrollBy (en-US), window.scrollByLines (en-US) e window.scrollByPages (en-US).

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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