1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
---
title: beforeunload
slug: Web/API/Window/beforeunload_event
translation_of: Web/API/Window/beforeunload_event
original_slug: Web/Events/beforeunload
---
<p>O evento <strong><code>beforeunload</code></strong> é disparado quando o <em>window</em>, o <em>document</em> e seus recursos estão prestes a ser descarregados.</p>
<p>Quando uma <em>string</em> é atribuída na propriedade <code>returnValue</code> do <em>Event</em>, 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.</p>
<table class="properties">
<tbody>
<tr>
<td>Bubbles</td>
<td>Não</td>
</tr>
<tr>
<td>Cancelable</td>
<td>Sim</td>
</tr>
<tr>
<td>Target objects</td>
<td>defaultView</td>
</tr>
<tr>
<td>Interface</td>
<td>{{domxref("Event")}}</td>
</tr>
</tbody>
</table>
<h2 id="Propriedades">Propriedades</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Propriedade</th>
<th scope="col">Tipo</th>
<th scope="col">Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>target</code> {{readOnlyInline}}</td>
<td>{{domxref("EventTarget")}}</td>
<td>O evento alvo (the topmost target in the DOM tree).</td>
</tr>
<tr>
<td><code>type</code> {{readOnlyInline}}</td>
<td>{{domxref("DOMString")}}</td>
<td>O tipo de evento.</td>
</tr>
<tr>
<td><code>bubbles</code> {{readOnlyInline}}</td>
<td>{{jsxref("Boolean")}}</td>
<td>O evento é normalmente <em>bubble</em>?</td>
</tr>
<tr>
<td><code>cancelable</code> {{readOnlyInline}}</td>
<td>{{jsxref("Boolean")}}</td>
<td>É possível cancelar o evento?</td>
</tr>
<tr>
<td><code>returnValue</code></td>
<td>{{domxref("DOMString")}}</td>
<td>O valor de retorno do evento (a mensagem que será exibida ao usuário).</td>
</tr>
</tbody>
</table>
<h2 id="Exemplos">Exemplos</h2>
<pre class="brush:js;">window.addEventListener("beforeunload", function (event) {
event.returnValue = "\o/";
});
// equivalente a
window.addEventListener("beforeunload", function (event) {
event.preventDefault();
});</pre>
<p>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:</p>
<pre class="brush: js">window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
e.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+
return confirmationMessage; // Gecko, WebKit, Chrome <34
});</pre>
<h2 id="Notas">Notas</h2>
<p>Quando este evento retorna um valor não vazio (<em>non-void</em>), é 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 <em>string</em> 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 {{bug("588292")}}.</p>
<p>Desde 25 de maio de 2011 a especificação HTML5 define que chamadas aos métodos {{domxref("window.alert()")}}, {{domxref("window.confirm()")}} e {{domxref("window.prompt()")}} serão ignoradas durante este evento. Para mais detalhes veja a <a href="http://www.w3.org/TR/html5/webappapis.html#user-prompts">especificação HTML5</a> (em inglês).</p>
<p>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 <em>about:config</em> que faz o mesmo. Em essência, isto significa que o usuário estará sempre confirmando que o documento pode ser descarregado.</p>
<h2 id="Veja_também">Veja também</h2>
<ul>
<li>{{Event("DOMContentLoaded")}}</li>
<li>{{Event("readystatechange")}}</li>
<li>{{Event("load")}}</li>
<li>{{Event("unload")}}</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/#prompt-to-unload-a-document">Descarregando documentos — Confirmando para descarregar o documento</a> (em inglês)</li>
</ul>
|