<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <dfn><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈を閉じる</anchor>ために<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性文書</anchor>でなくなろうとしていることを知らせる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMイベント</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>は、この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>を使って、必要があれば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に対して本当に処理を続行するかどうか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>に確認させることができます。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を編集する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>では、変更がすべて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>上に保存されていない時に、
そのまま遷移または閉じて変更を破棄しても良いかを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に尋ねるために本<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>を使うことができます。</p></example><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <strong><cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-04-25 04:40:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#prompt-to-unload-a-document">https://html.spec.whatwg.org/#prompt-to-unload-a-document</anchor-external></strong><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-04-25 04:40:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#beforeunloadevent">https://html.spec.whatwg.org/#beforeunloadevent</anchor-external></li></ul></li></ul></refs></section><section><h1>確認ダイアログ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>で文字列が指定されたか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り消し</anchor>された場合には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に対して unload を続行するかどうか確認する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>が (原則として)
表示されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> このダイアログには、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の可能な選択肢として続行するボタンと続行しないボタンが表示されます。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> かつては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が指定した文字列があれば、それを表示することになっていました。
しかし悪意ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>を欺くために使うことがあるので、
この機能は廃止されました。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">termination nesting level</anchor> が設定される (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal>) ため、
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> 中では <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">confirm</anchor></code>
は使うことができず、こちらの方法で間接的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>を表示させる必要があります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 仕様上は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>を表示するべきことは <MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUST</MUST> ではなく
<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SHOULD</SHOULD> となっていますが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者インターフェイス</anchor>に関する要件であることや、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に対する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DoS攻撃</anchor>に乱用される可能性も否定できないことなどを踏まえて表示しない余地を与えているものと思われます。
そのような特殊な状況や、仕様上除外されている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">砂箱化</anchor>された状態を除いて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>を表示しないような実装は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換</anchor>ではありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 表示については<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>も参照。</p></section><section><h1>処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor></dfn> は、
<var>文書</var>と<var>再帰フラグ</var>について、
次のようにしなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <var>文書</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">termination nesting level</anchor> を
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インクリメント</anchor>します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <var>文書</var>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ignore-opens-during-unload counter</anchor> を
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インクリメント</anchor>します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <var>イベント</var>を、 <code class="DOMi" xml:lang="en">BeforeUnloadEvent</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントを作成</anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <var>イベント</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">イベント型</title></f>を、 <code class="DOMe" xml:lang="en">beforeunload</code> に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <var>イベント</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り消し可能</f>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <var>イベント</var>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dispatch</anchor> します。<figure class="list members"><dl><dt><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対象<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">イベント対象</title></anchor></var></dt><dd><var>文書</var>の <code class="DOMi" xml:lang="en">Window</code></dd></dl></figure></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <var>文書</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントループ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">termination nesting level</anchor> を
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デクリメント</anchor>します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <var>イベント</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dispatch</anchor>でいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>が実行されていたらなら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <var>文書</var>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></f> を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <dfn><var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">refused to allow the document to be unloaded</anchor></var></dfn> を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <var>文書</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性砂箱化フラグ集合</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sandboxed modals flag</anchor> が設定されていない</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <var>イベント</var>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en">returnValue</code></f>
が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>以外であるか、<var>イベント</var>が<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">取り消し</f>されている</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>が適切と判断した</li></ul></figure>... の<strong>すべて</strong>の条件を満たすなら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に対して unload を望むか確認します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の応答があるまで、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pause<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">pause (event loop)</title></anchor> します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が unload を望まないと応答したら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <var>refused to allow the document to be unloaded</var> を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定します。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <var>再帰</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <var>文書</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子孫閲覧文脈のリスト</anchor>の各<var>閲覧文脈</var>について、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <var>結果</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload</anchor> を実行した結果に設定します。<figure class="list members"><dl><dt><var>文書</var></dt><dd><var>閲覧文脈</var>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性文書</f></dd><dt><var>再帰フラグ</var></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor></dd></dl></figure></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <var>結果</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <var>refused to allow the document to be unloaded</var> を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <var>閲覧文脈</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ループ</anchor>を抜けます。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性文書</f>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></f> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <var>文書</var>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></f> を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>に設定します。</li></ol></li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <var>文書</var>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ignore-opens-during-unload counter</f> を
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デクリメント</anchor>します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <var>refused to allow the document to be unloaded</var> を返します。</li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に確認するかどうかの判断は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>に委ねられていますが、
例えば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対話</anchor>していない状態なら、
省くことができます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。裏の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タブ</anchor>で勝手に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor>
が発生した場合などが該当しそうです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に対する確認の表示については、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>を参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> から呼び出されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子へのスクロール</anchor>しかしない場合は呼び出されませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> を行う場合などは (最終的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダウンロード</anchor>などに至るとしても、
それが決まる前に) 呼び出されます。詳しくは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> を参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor> の実行中は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> は何もしません。
つまり <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>内ではページ遷移の開始が抑制されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> を参照。なお ⊿ を指定した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴の探索</anchor>は抑制されませんが、
実際の処理は別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスクキュー</anchor>に入れる形で実行されるので、
<code xmlns="http://www.w3.org/1999/xhtml" class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>内で同期的にページ遷移が開始されることはありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor> は ⊿ を指定した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴の探索</anchor>や、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.open</anchor></code> や、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈を閉じる</anchor>際にも呼び出されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor> が呼び出された場合、 refuse
されていなければ、その後 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unload a document</anchor> が呼び出されることになります。</p></section><section><h1><code class="DOMi" xml:lang="en">BeforeUnloadEvent</code> インターフェイス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BeforeUnloadEvent</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>
は、 <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>で使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BeforeUnloadEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書環境</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">晒され</anchor>ています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BeforeUnloadEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Event</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継承</anchor>しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>インターフェイスとは違って、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンストラクター</anchor>はありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BeforeUnloadEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<dfn><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>を持ちます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>インターフェイスの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>とは違って、読み書きの両方が可能です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>は、 <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor></code>
を設定、取得できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>で、初期値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>内で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が適切な値を設定することが想定されていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">後方互換性</anchor>のためのものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。
値が設定されているかどうかが処理に反映されますが、値そのものは無視されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は、 <code class="DOMm" xml:lang="en">preventDefault</code> などを使う<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです</SHOULD> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal></src>。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code> に非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>を設定したら、
それを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モーダルダイアログ</anchor>に表示することになっていました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IEのイベントモデル</anchor>では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">返り値</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>オブジェクトの
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code> を設定するのと同義でした。現在の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>
では、唯一 <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BeforeUnloadEvent</anchor></code> にのみ <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code>
が残っています。</p></history></section><section><h1><code class="DOMa" xml:lang="en">onbeforeunload</code> 属性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onbeforeunload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー属性</anchor>は、
他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー</anchor>とは違って、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">返り値</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>オブジェクトの
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">returnValue</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>の値 (を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列化</anchor>したもの) に設定されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントハンドラー</anchor>参照。</comment-p></section><section><h1>歴史</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en"><strong>[</strong>whatwg<strong>]</strong> salvaging work while navigating away from a web app -- onunload=&quot;confirm('save before quitting?')</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ian Hickson</anchor>著, <time>2008-12-12 17:55:08 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://lists.w3.org/Archives/Public/public-whatwg-archive/2008Dec/0146.html">https://lists.w3.org/Archives/Public/public-whatwg-archive/2008Dec/0146.html</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>Re: salvaging work while navigating away from a web app -- onunload=&quot;confirm('save before quitting?')</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ian Hickson</anchor> 著, <time>2008-12-12 08:55:08 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/17107">http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/17107</anchor-external></li></ul></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">IEでのonBeforeUnload の挙動 | Inside ASCADE</cite> (<time>2009-02-20 05:46:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://inside.ascade.co.jp/node/58">http://inside.ascade.co.jp/node/58</anchor-external></p><blockquote><p>&lt;a&gt; タグの href で javascipt を呼び出した場合に location を変化させない(つもり)にもかかわらず、onBeforeunload イベントが発生したことです。ちなみにFirefoxではこの場合にイベントは発生しません。</p></blockquote><blockquote><ul><li>多少仕様の記述と異なるが大体MSDNのドキュメント通り</li><li>href=&quot;javascript:xx&quot; でonBeforeunload が発生するのは少し困る</li><li>document.close ではonBeforeunload が発生しないが別に困らない</li></ul></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> 内で <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">img</anchor></code> により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> を行うと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE10</anchor> では実際にアクセスが発生しますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> では発生しません。 <time>2013-07-04T03:05:58.500Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8282     OnBeforeUnloadEventHandler is supposed to allow null return values (and some markup error fixes, oops)</cite>
( (<time>2013-11-14 07:45:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8281&amp;to=8282">http://html5.org/tools/web-apps-tracker?from=8281&amp;to=8282</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20150115</cite>
( (<time>2015-01-16 11:47:48 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20150115#l-693">http://krijnhoetmer.nl/irc-logs/whatwg/20150115#l-693</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite>Update on standardizing shadow DOM and custom elements — Anne’s Blog</cite>
(<time>2015-07-29 12:37:46 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://annevankesteren.nl/2015/07/shadow-dom-custom-elements-update">https://annevankesteren.nl/2015/07/shadow-dom-custom-elements-update</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20150727</cite>
(<time>2015-07-30 10:13:04 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20150727">http://krijnhoetmer.nl/irc-logs/whatwg/20150727</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">Block modal dialogs by default in sandboxed documents · whatwg/html@bbccfc9</cite> (<time>2015-09-10 00:20:23 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/bbccfc976754def0c187ac8ce5891d2fb20dfc15">https://github.com/whatwg/html/commit/bbccfc976754def0c187ac8ce5891d2fb20dfc15</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en">Remove the storage mutex due to lack of implementation · whatwg/html@1b918cf</cite> (<time>2015-12-16 14:38:10 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/1b918cf72fcbba011f83b92ab5d1f483fb1cafa3">https://github.com/whatwg/html/commit/1b918cf72fcbba011f83b92ab5d1f483fb1cafa3</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="en">Allow truncation of alert/confirm/prompt text · whatwg/html@56f5c5e</cite>
(<time>2016-02-21 12:50:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/56f5c5e39b8b43b4bd4a8007fdc56ad797a5b2a7">https://github.com/whatwg/html/commit/56f5c5e39b8b43b4bd4a8007fdc56ad797a5b2a7</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en">Ignore beforeunload event return value · whatwg/html@01d9870</cite>
(<time>2016-04-09 13:26:44 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/01d9870a6873e6d6410c3abf9fe38533646631b9">https://github.com/whatwg/html/commit/01d9870a6873e6d6410c3abf9fe38533646631b9</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <cite xml:lang="en">25002 – Event.returnValue</cite>
(<time>2016-04-10 12:09:10 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25002">https://www.w3.org/Bugs/Public/show_bug.cgi?id=25002</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <cite xml:lang="en">Be more explicit that prompting before unloading is optional</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-05-20 15:52:39 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/8ef5d945d9c4298a0d66f81543f6a7e83634f39b">https://github.com/whatwg/html/commit/8ef5d945d9c4298a0d66f81543f6a7e83634f39b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="en"><strong>[</strong><strong>]</strong> (0) Placeholder for beforeunload/unload; interaction of document.o…</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Hixie</anchor>著, <time>2007-04-21 14:30:09 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/c1994a485446ab0fbfb7048df10bb081947f6405">https://github.com/whatwg/html/commit/c1994a485446ab0fbfb7048df10bb081947f6405</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite>API Deprecations and Removals in Chrome 51 | Web Updates - Google Developers</cite>
( (<time>2016-08-03 01:42:01 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.google.com/web/updates/2016/04/chrome-51-deprecations#remove-custom-messages-in-onbeforeload-dialogs">https://developers.google.com/web/updates/2016/04/chrome-51-deprecations#remove-custom-messages-in-onbeforeload-dialogs</anchor-external></figcaption><blockquote><p>A window’s onbeforeunload property may be set to a function that returns a string that is shown to the user in a dialog box to confirm that the user wants to navigate away. This was intended to prevent users from losing data during navigation. Unfortunately, it is often used to scam users.</p><p>Starting in Chrome 51, a custom string will no longer be shown to the user. Chrome will still show a dialog to prevent users from losing data, but it’s contents will be set by the browser instead of the web page.</p><p>With this change, Chrome will be consistent with Safari 9.1 and later, as well as Firefox 4 and later.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite xml:lang="en">Fix onbeforeunload event handler processing</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2017-02-15 05:15:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/fb7e621eab8a437df7ac524e547e31e117b7fce5">https://github.com/whatwg/html/commit/fb7e621eab8a437df7ac524e547e31e117b7fce5</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">Fix event handler processing algorithm special cases</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2017-03-16 05:16:07 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/c065e991b65e10a1fc77ba77fed9f0822ff6858b">https://github.com/whatwg/html/commit/c065e991b65e10a1fc77ba77fed9f0822ff6858b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <cite xml:lang="en">Chromium policy on JavaScript dialogs  |  Web  |  Google Developers</cite>
( (<time>2017-03-31 00:28:36 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.google.com/web/updates/2017/03/dialogs-policy">https://developers.google.com/web/updates/2017/03/dialogs-policy</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <cite xml:lang="en">document.createEvent() supports lots of events that most UAs do not support initializers for · Issue #362 · whatwg/dom</cite>
(<time>2017-08-08 21:48:03 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/issues/362">https://github.com/whatwg/dom/issues/362</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <cite xml:lang="en">document.open() simplifications, part 1</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TimothyGu</anchor>著, <time>2018-08-17 07:20:44 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/6f769b8089a843066aa19f5991405bf4c84458b3">https://github.com/whatwg/html/commit/6f769b8089a843066aa19f5991405bf4c84458b3</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <cite xml:lang="en">How should document.open handle the beforeunload handler tearing down the world? · Issue #3306 · whatwg/html</cite>
(<time>2018-08-23 20:17:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/issues/3306">https://github.com/whatwg/html/issues/3306</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <cite xml:lang="en">document.open() simplifications: realm creation, unloading, tasks removal by TimothyGu · Pull Request #3918 · whatwg/html</cite>
(<time>2018-08-23 20:19:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/3918">https://github.com/whatwg/html/pull/3918</anchor-external></p></section></body></html>