recursal/MDN huggingface dataset:
beforeunload
============

O evento **`beforeunload`** é disparado quando o *window*, o *document* e seus recursos estão prestes a ser descarregados.

Quando uma *string* é atribuída na propriedade `returnValue` do *Event*, uma caixa de díalogo aparecerá solicitando ao usuário uma confirmação para sair da página (veja exemplo abaixo). Quando nenhum valor é fornecido, o evento é processado silenciosamente.

|  |  |
| --- | --- |
| Bubbles | Não |
| Cancelable | Sim |
| Target objects | defaultView |
| Interface | `Event` |

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

| Propriedade | Tipo | Descrição |
| --- | --- | --- |
| `target` Somente leitura  | `EventTarget` | O evento alvo (the topmost target in the DOM tree). |
| `type` Somente leitura  | `DOMString` | O tipo de evento. |
| `bubbles` Somente leitura  | `Boolean` | O evento é normalmente *bubble*? |
| `cancelable` Somente leitura  | `Boolean` | É possível cancelar o evento? |
| `returnValue` | `DOMString` | O valor de retorno do evento (a mensagem que será exibida ao usuário). |

Exemplos
--------


```js
window.addEventListener("beforeunload", function (event) {
  event.returnValue = "\\o/";
});

// equivalente a
window.addEventListener("beforeunload", function (event) {
  event.preventDefault();
});
```


Navegadores baseados no WebKit não seguem a especificação para caixas de diálogo. Um exemplo que funcionaria na maioria dos navegadores seria aproximadamente o seguinte:


```js
window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\\o/";

  e.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+
  return confirmationMessage; // Gecko, WebKit, Chrome <34
});
```

Notas
-----

Quando este evento retorna um valor não vazio (*non-void*), é solicitada ao usuário uma confirmação para descarregar a página. Na maioria dos navegadores o valor retornado no evento é exibido como mensagem nessa confirmação. No Firefox 4 e versões anteriores a *string* retornada não é exibida para o usuário. Ao invés disso, o Firefox exibe a mensagem "Esta página está perguntanto se você deseja sair - é possível que as alterações feitas não sejam salvas." Veja Erro do Firefox 588292.

Desde 25 de maio de 2011 a especificação HTML5 define que chamadas aos métodos `window.alert()`, `window.confirm()` e `window.prompt()` serão ignoradas durante este evento. Para mais detalhes veja a especificação HTML5 (em inglês).

Note também que vários navegadores para celular ignoram o resultado deste evento (isso que dizer que eles não solicitam a confirmação do usuário). O Firefox possui uma configuração escondida em *about:config* que faz o mesmo. Em essência, isto significa que o usuário estará sempre confirmando que o documento pode ser descarregado.

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

* `DOMContentLoaded (en-US)`
* `readystatechange (en-US)`
* `load (en-US)`
* `unload (en-US)`
* Descarregando documentos — Confirmando para descarregar o documento (em inglês)
Window.print()
==============

Sumário
-------

Abre a janela de impressão para imprimir o documento atual.

Sintaxe
-------


```js
print()
```

### Parameters

None.

### Return value

None (`undefined`).

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

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

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

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

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

* Printing
* `beforeprint` (en-US) event
* `afterprint` (en-US) event
Window.document
===============

Resumo
------

Retorna a referência para o documento contido na janela.

> 
> \*\*Nota:\*\*Firefox 3 altera a segurança para documentos de uma janela de modo que apenas o domínio a partir do qual foi localizado possa acessar o documento. Enquanto isso pode quebrar alguns sites existentes, é um movimento feito por ambos Firefox 3 e Internet Explorer 7, e resulta na melhoria de segurança.
> 
> 
> 

Sintaxe
-------
```

doc = window.document
```

### Parâmetros

* `doc` é um objeto referência de um objeto para um document (en-US).
Exemplo
-------


```js
<!DOCTYPE html>
<html>
<head>
   <title>Hello, World!</title>
</head>
<body>

<script type="text/javascript">
   var doc = window.document;
   alert( doc.title);    // alerts: Hello, World!
</script>

</body>
</html>
```

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

* HTML
Window.event
============

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

**`window.event`** é uma propriedade proprietária do Microsoft Internet Explorer que só está disponível enquanto um manipulador de eventos DOM é chamado. Seu valor é o objeto Event atualmente tratado.

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

Não é parte de nenhuma especificação.

Microsoft tem uma descrição na MSDN.

Compatibilidade de navegadores
------------------------------

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

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

* `Event.srcElement`
GlobalEventHandlers.onblur
==========================

A propriedade **onblur** retorna o código que vai lidar com o evento onBlur, se houver, que existe no elemento atual.

Sintaxe
-------
```

element.onblur = function;
```


* `function` é o nome de uma função definida pelo usuário, sem o sufixo () ou qualquer parâmetro, ou uma declaração de função anônima, como por exemplo
```

element.onblur = function() { console.log("evento onblur detectado!"); };
```

Exemplo
-------


```html
<html>
  <head>
    <title>exemplo de evento onblur</title>

    <script type="text/javascript">
 var elem = null;

 function initElement() {
 elem = document.getElementById("foo");
 // NOTA: doEvent(); ou doEvent(param); NÃO irão funcionar aqui.
 // Deve ser uma referência ao nome da função, não à chamada da função.
 elem.onblur = doEvent;
 }

 function doEvent() {
 elem.value = "Tchauzinho";
 console.log("Evento onblur detectado!");
 }
 </script>

    <style type="text/css">
 <!--
 #foo {
 border: solid blue 2px;
 }
 -->
 </style>
  </head>

  <body onload="initElement();">
    <form>
      <input type="text" id="foo" value="Olá!" />
    </form>

    <p>
      Clique no elemento acima para dá-lo focus, depois clique fora do
      elemento.<br />
      Recarregue a pagina através do NavBar.
    </p>
  </body>
</html>
```

Notas
-----

O evento blur aparece quando um elemento perde o focus.

Em contraste cp, MSIE--O qual faz quase todos os elementos receberem o evento blur--quase todos os elementos em navegadores baseados no Gecko NÃO funcionam com este evento.

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

| Specification |
| --- |
| UI Events # event-type-blur |
| HTML Standard # handler-onblur |

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

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

A propriedade `localStorage` permite acessar um objeto `Storage` local. A `localStorage` é similar ao `sessionStorage` (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 — ou seja, quando a página (aba ou janela) é fechada.

Sintaxe
-------


```js
meuStorage = localStorage;
```

### Valor

Objeto `Storage`.

Exemplo
-------

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


```js
localStorage.setItem("meuGato", "Tom");
```


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

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

| Specification |
| --- |
| HTML Standard # dom-localstorage-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
* `LocalStorage` (en-US)
* `SessionStorage` (en-US)
* `Window.sessionStorage`
window.requestIdleCallback()
============================

**Experimental:** **Esta é uma tecnologia experimental (en-US)**  
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

O método **`window.requestIdleCallback()`** enfileira uma função para ser executado durante períodos onde o navegador está ocioso. Isso permite que desenvolvedores realizem tarefas de baixa prioridade em relação a o event loop em segundo plano. As funções são geralmente chamadas na ordem first-in-first-out (primeiro-a-entrar-primeiro-a-sair); Contudo, callbacks nos quais tem um timeout especificado, podem ser chamados na ordem out-of-order (fora-de-ordem) se necessário, afim de executar antes do tempo limite.

Você pode chamar `requestIdleCallback()` com uma função callback ociosa para agendar outro callback para ter lugar não antes da próxima passagem pelo event loop.

**Nota:** Um `timeout` é altamento recomendado, caso contrário, é possível que vários segundos passem antes que a função callback seja chamada.

Syntax
------
```

var handle = window.requestIdleCallback(callback[, options])
```

### Return value

An ID which can be used to cancel the callback by passing it into the `window.cancelIdleCallback()` (en-US) method.

### Parameters

`callback`

A reference to a function that should be called in the near future, when the event loop is idle. The callback function is passed an `IdleDeadline` (en-US) object describing the amount of time available and whether or not the callback has been run because the timeout period expired.

`options` Optional

Contains optional configuration parameters. Currently only one property is defined:

* `timeout`: If `timeout` is specified and has a positive value, and the callback has not already been called by the time *timeout* milliseconds have passed, the callback will be called during the next idle period, even if doing so risks causing a negative performance impact.

Example
-------

See our complete example (en-US) in the article Cooperative Scheduling of Background Tasks API (en-US).

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

| Specification |
| --- |
| requestIdleCallback() Cooperative Scheduling of Background Tasks # the-requestidlecallback-method |

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

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

See also
--------

* `window.cancelIdleCallback()` (en-US)
* `IdleDeadline` (en-US)
* `window.setTimeout()` (en-US)
* `window.setInterval()` (en-US)
* `window.requestAnimationFrame`
load
====
```

O evento de load é acionado quando um recurso e seus recursos
dependentes terminaram de carregar.
```

Informações Gerais
------------------

Especificação

DOM L3

Interface

UIEvent

Bubbles

Não

Cancelavel

Não

Alvo

Window

Ação Padrão

Nenhuma.

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

| Property | Type | Description |
| --- | --- | --- |
| `target` Somente leitura  | `EventTarget` | The event target (the topmost target in the DOM tree). |
| `type` Somente leitura  | `DOMString` | The type of event. |
| `bubbles` Somente leitura  | `Boolean` (en-US) | Whether the event normally bubbles or not. |
| `cancelable` Somente leitura  | `Boolean` (en-US) | Whether the event is cancellable or not. |
| `view` Somente leitura  | `WindowProxy` | `document.defaultView` (`window` of the document) |
| `detail` Somente leitura  | `long` (`float`) | 0. |

Exemplo
-------


```html
<script>
 window.addEventListener("load", function (event) {
 console.log("Todos os recursos terminaram o carregamento!");
 });
</script>
```

Eventos Relacionados
--------------------

* `DOMContentLoaded (en-US)`
* `readystatechange (en-US)`
* `load (en-US)`
* `beforeunload (en-US)`
* `unload (en-US)`
Window.confirm()
================

O método **`Window.confirm()`** mostra uma janela modal com uma mensagem opcional e dois botões, OK e Cancelar.

Sintaxe
-------
```

resultado = window.confirm(mensagem);
```


* `mensagem` é a string opcional que será mostrada no diálogo.
* `resultado` é um booleano indicando se OK ou cancelar foram selecionados (`true` indicará OK).
Exemplo
-------
```

if (window.confirm("Você realmente quer sair?")) {
  window.open("sair.html", "Obrigado pela visita!");
}
```


Produzirá:

![firefox confirm](/pt-BR/docs/Web/API/Window/confirm/firefox_confirm_dialog.png)

Notas
-----

The following text is shared between this article, DOM:window.prompt and DOM:window.alert Caixas de diálogo são janelas modais - elas previnem o usuário de acessar o resto da interface da aplicação enquanto a caixa de diálogo não for fechada. Por esta razão, você não deve usar abusivamente nenhuma função que crie uma caixa de diálogo (ou uma janela modal). E independente disso, existem boas razões para evitar o uso de caixas de diálogo para confirmações.

Usuários do Mozilla Chrome (Ex.: Extensões do Firefox) devem utilizar métodos de `nsIPromptService`.

O argumento é opcional e não é requerido por especificações.

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

Especificado em HTML5.

Veja Também
-----------

* `alert`
* `prompt`
Window.history
==============

A propriedade só de leitura **Window.history** retorna uma referência ao objeto History, que fornece uma interface para manipular o histórico de sessão do navegador (páginas visitadas na guia ou quadro em que a página atual é carregada).

Consulte Manipulação do histórico do navegador para obter exemplos e detalhes. Em particular, esse artigo explica os recursos de segurança dos métodos pushState () e replaceState () que você deve conhecer antes de usá-los.

Syntax
------
```

var historyObj = window.history;
```

Example
-------


```js
History.back(); // equivalente ao clique no botão Voltar
History.go(-1); // equivalente a history.back ();
```

Notas
-----

Para páginas de nível superior, você pode ver a lista de páginas no histórico da sessão, acessível através do objeto Histórico, nos menus suspensos do navegador ao lado dos botões para trás e para frente.

Por motivos de segurança, o objeto Histórico não permite que o código não privilegiado acesse os URLs de outras páginas no histórico da sessão, mas permite que ele navegue pelo histórico da sessão.

Não há nenhuma maneira de limpar o histórico da sessão ou desabilitar a navegação para trás / para frente do código não privilegiado. A solução disponível mais próxima é o método location.replace (), que substitui o item atual do histórico da sessão pelo URL fornecido.

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

| Specification |
| --- |
| HTML Standard # the-history-interface |

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

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

Altura (em pixels) da janela de visualização do navegador, incluindo, se renderizado, a barra de rolagem horizontal.

**Nota:** If you use `nsIDOMWindowUtils.setCSSViewport()` to set the virtual window size for page layout purposes, the value returned by this property corresponds to the viewport height set using that method.

Syntax
------
```

var intViewportHeight = window.innerHeight;
```

### Value

On return, `intViewportHeight` is the height of the browser window's viewport.

The `window.innerHeight` property is read only; it has no default value.

Notes
-----

The `innerHeight` property is supported in any window object like a `window`, a frame, a frameset, or a secondary window.

There is an algorithm to obtain the height of the viewport excluding, if rendered, the horizontal scrollbar.

Example
-------

### Assuming a frameset


```js
var intFrameHeight = window.innerHeight; // or

var intFrameHeight = self.innerHeight;
// will return the height of the frame viewport within the frameset

var intFramesetHeight = parent.innerHeight;
// will return the height of the viewport of the closest frameset

var intOuterFramesetHeight = top.innerHeight;
// will return the height of the viewport of the outermost frameset
```

{{todo("link to an interactive demo here")}}
To change the size of a window, see `window.resizeBy()` (en-US) and `window.resizeTo()` (en-US).

To get the outer height of a window, i.e. the height of the whole browser window, see `window.outerHeight` (en-US).

### Graphical example

The following figure shows the difference between `outerHeight` and `innerHeight`.

![innerHeight vs outerHeight illustration](/pt-BR/docs/Web/API/Window/innerHeight/firefoxinnervsouterheight2.png)

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

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

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

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

See also
--------

* `window.innerWidth` (en-US)
* `window.outerHeight` (en-US)
* `window.outerWidth` (en-US)
Window.setImmediate()
=====================

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Esse método é usado para interromper operações de longa duração e executar uma função de retorno de chamada imediatamente após o navegador ter concluído outras operações, como eventos e atualizações de exibição.

**Nota:** Não se espera que este método se torne padrão, e é implementado somente por compilações recentes do Internet Explorer e Node.js 0.10+. Existem resistencias de ambos Gecko (Firefox) e Webkit (Google/Apple).

Sintaxe
-------
```

var immediateID = setImmediate(func, [param1, param2, ...]);
var immediateID = setImmediate(func);
```


* onde `immediateID` é o ID da immediate que poderá ser usado depois com `window.clearImmediate` (en-US).
* `func` é a função que será executada.

Todos parametros serão passados diretamente para sua função .

Notas
-----

O método `window.clearImmediate` (en-US) pode ser usado para limpar as ações immediate, como por exemplo `window.clearTimeout` (en-US) para `window.setTimeout` (en-US).

Esse método pode ser usado ao invés de `setTimeout(fn, 0)`, para executar operações pesadas.

Essa função pode ser emulada de algumas maneiras:

* `window.postMessage` (en-US) pode ser usada para disparar um immediate mas produzindo um callback. Tenha em mente que o Internet Explorer 8 inclui uma versão síncrona do postMessage, que não deverá ser usado como alternativa.
* MessageChannel pode ser usado com confiança dentro de Web Workers onde a semantica do postMessage significa que não pode ser usado lá.
* `setTimeout(fn, 0)`*pode* ser usado potencialmente, no entanto, como é apertado em 4ms para temporizadores aninhados com mais de 5 profundidades por especificação HTML, não faz para um polifil adequado para o imediatismo natural de setImmediate.

Todas essas técnicas são incorporadas em um setImmediate polyfill.

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

Não faz parte de denhuma especificação.

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

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

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

`window.clearImmediate` (en-US)
Microsoft setImmediate API Demo
Window.scrollByPages()
======================

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

### Resumo

Rola o documento atual para a página especificada.

### Sintaxe
```

window.scrollByPages(pages)
```

### Parâmetros

* **`pages`** é o número de páginas a serem roladas.
* **`pages`** pode ser um número inteiro positivo ou negativo.
### Exemplo
```

// rola o documento para baixo até a página 1
window.scrollByPages(1);

// rola o documento para cima até a página 1
window.scrollByPages(-1);
```

### Notas

Veja também window.scrollBy, window.scrollByLines, window.scroll, window.scrollTo.

### Specification

DOM Level 0. Not part of specification.
Window.getSelection()
=====================

Resumo
------

Retorna um objeto `Selection` representando a parte do texto selecionada pelo usuário ou a posição atual do cursor.

Syntax
------
```

selection = window.getSelection();
```


* `selection` é um objeto `Selection`. Quando convertido para string, seja adicionando uma string vazia (" ") ou usando `String.toString()`, esse objeto retorna o texto selecionado.
Example
-------


```js
function foo() {
  var selObj = window.getSelection();
  alert(selObj);
  var selRange = selObj.getRangeAt(0);
  // do stuff with the range
}
```

Nota
----

### Representação do objeto Selection em String

No JavaScript, quando um objeto é passado para uma função que espera uma string (como `window.alert()` ou `document.write()`), o método `toString()` do objeto é chamado e o valor retornado é passado para a função. Isso pode fazer com que o objeto pareça ser uma string quando usado com outras funções quando na verdade é um objeto com propriedades e métodos.

No exemplo acima, `selObj.toString()` é chamado automaticamente quando é passado para `window.alert()`. Contudo, tentar usar propriedades ou métodos do objeto JavaScript String como `length` ou `substr diretamente no objeto` `Selection` resultará em erro se o objeto não possuir essa propriedade ou método e pode retornar valores inesperados mesmo se os tiver. Para usar um objecto `Selection` como uma string, faça a chamada do seu método `toString()` diretamente:


```js
var selectedText = selObj.toString();
```


* `selObj` é um objeto `Selection`.
* `selectedText` é uma string (Selected text).
### Objectos Relacionados

É útil também notar que você pode chamar `Document.getSelection()`, que funciona de forma idêntica.

Inputs HTML provêm APIs mais simples para se trabalhar com seleções (veja `HTMLInputElement.setSelectionRange()`).

Note a diferença entre *selection* e *focus*. `Document.activeElement` retorna o elemento com foco.

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

| Specification |
| --- |
| Selection API # dom-window-getselection |

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

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

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

* `Selection`
* `Range` (en-US)
* `Document.getSelection()`
* `HTMLInputElement.setSelectionRange()`
* `Document.activeElement`, `HTMLElement.focus()` (en-US), and `HTMLElement.blur()` (en-US)
Location.assign()
=================

O método **`Location.assign()`** faz com que o navegador carregue o documento na URL especificada e a exiba na janela atual.

Se a tatefa não poder ser executada por alguma violação de segurança, uma `DOMException` (en-US) do tipo `SECURITY_ERROR` será lançada. Isso acontece se a origem do script chamador do método for diferente da origem da página originalmente descrita no objeto `Location`, geralmente quando o script está hospedado em um dominio diferente.

Se a URL especificada for inválida, uma `DOMException` (en-US) do tipo `SYNTAX_ERROR` será lançada.

Sintaxe
-------
```

location.assign(url);
```

### Parâmetros

*url*

É uma `DOMString` contendo a URL da página destino.

Exemplos
--------


```js
// Navega para a página do artigo Location.reload
document.location.assign(
  "https://developer.mozilla.org/pt-BR/docs/Web/API/Location.reload",
);
```

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

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

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

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

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

* A interface `Location`.
* Métodos Similares: `Location.replace()` (en-US) and `Location.reload()`.