日常生活では、リンクをクリックしたり、ページを閉じたり、フォームを送信したりする際に、動作を確認するかどうかなどを確認する画面が表示されることがあります。
ここではJavaScriptのonbeforeunload()イベントとonunload()イベントについて説明します。
類似点:
どちらもページの閉じるイベントまたは更新イベントで動作します。
違い:
unbeforeunload() イベントが実行される順序は、onunload() イベントより前に発生します。 (unbeforeunload() はページが更新される前にトリガーされるイベントであるのに対し、onubload() はページが閉じられた後にトリガーされるためです)。
unbeforeunload() イベントは、onunload() イベントのトリガーを禁止できます。
onunload() イベントはページが閉じるのを防ぐことはできません。
ブラウザの互換性
onunload:
IE6、IE7、IE8 では、ページを更新してブラウザを閉じ、ページがジャンプした後に実行されます。
IE9 では、ページを更新した後に実行されます。ページがジャンプしたとき、またはブラウザを閉じたときは実行されません。 ;
firefox (firefox3.6 を含む) は、タグを閉じた後、ページがジャンプした後、ページを更新した後に実行できますが、ブラウザを閉じた後は実行できません。
Safari はページを更新したりページをジャンプした後に実行できますが、ブラウザを閉じることはできません。Opera と Chrome はいかなる状況でも実行されません。 onbeforeunload:IE、Chrome、Safariを完全にサポートFirefoxはテキストリマインダーメッセージをサポートしていませんOperaはサポートしていませんIE6、IE7にはバグがあります サンプルコード:onbeforeunload() :方法1:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body onbeforeunload="return myFunction()"> <p>该实例演示了如何向 body 元素添加 "onbeforeunload" 事件。</p> <p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p> <a href="http://www.qqtimezone.top">博客地址</a> <script> function myFunction() { return "自定义内容"; } </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <p>该实例演示了如何使用 HTML DOM 向 body 元素添加 "onbeforeunload" 事件。</p> <p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p> <a href="http://www.runoob.com">点击调整到菜鸟教程</a> <script> window.onbeforeunload = function(event) { event.returnValue = "我在这写点东西..."; }; </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p>该实例演示了如何使用 addEventListener() 方法向 body 元素添加 "onbeforeunload" 事件。</p> <p>关闭当前窗口,按下 F5 或点击以下链接触发 onbeforeunload 事件。</p> <a href="http://www.qqtimezone.top">跳转地址</a> <script> window.addEventListener("beforeunload", function(event) { event.returnValue = "我在这写点东西..."; }); </script> </body> </html>
<!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript"> function fun() { // dosomethings } </script> </head> <body onunload="fun()"> </body> </html>