Onunload,onbeforeunload都是在刷新或關閉時調用,可以在<script>腳本中通過 window.onunload來指定或者在<body>里指定。區別在於onbeforeunload在onunload之前執行,它還可 以阻止onunload的執行。
Onbeforeunload也是在頁面刷新或關閉時調用,Onbeforeunload是正要去服務器讀 取新的頁面時調用,此時還沒開始讀取;而onunload則已經從服務器上讀到了需要加載的新的頁面,在即將替換掉當前頁面時調用。Onunload是無 法阻止頁面的更新和關閉的。而 Onbeforeunload 可以做到。
觸發於:
·關閉瀏覽器窗口
·通過地址欄或收藏夾前往其他頁面的時候
·點擊返回,前進,刷新,主頁其中一個的時候
·點擊 一個前往其他頁面的url連接的時候
·調用以下任意一個事件的時候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
·當用window open打開一個頁面,並把本頁的window的名字傳給要打開的頁面的時候。
·重新賦予location.href的值的時候。
·通過input type=”submit”按鈕提交一個具有指定action的表單的時候。
可以用在以下元素:
·BODY, FRAMESET, window
·關閉瀏覽器窗口
·通過地址欄或收藏夾前往其他頁面的時候
·點擊返回,前進,刷新,主頁其中一個的時候
·點擊 一個前往其他頁面的url連接的時候
·調用以下任意一個事件的時候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
·當用window open打開一個頁面,並把本頁的window的名字傳給要打開的頁面的時候。
·重新賦予location.href的值的時候。
·通過input type=”submit”按鈕提交一個具有指定action的表單的時候。
可以用在以下元素:
·BODY, FRAMESET, window
要想定制自己的一套瀏覽器關閉彈窗的內容,只需要在return 里面,return出來你需要的編寫的內容即可。但是基本的框架的內容不會改變
window.onbeforeunload = function (e) { return (e || window.event).returnValue = '您正在學習中,繼續此操作將不記錄學時,保留學時請簽退!'; }; }
要是想關掉默認的瀏覽器的退出的彈窗,只需要在函數體什么都不寫就可以了。
由此可見,除了在火狐下,其他的瀏覽器在彈出的確認框的時候都會顯示你return的內容。如果你不寫return的話,瀏覽器會判斷你是一個undefined值或NULL,將不起作用(可以return undefined或者return null來實踐,效果就是不寫return。注:如果寫return false的話也是會有效的,因為return到了一個值)。如果要讓每個瀏覽器彈出的內容差不多的話,就return個空的字符串就好。
function testMothed(){ window.location.href='index.html'; window.onbeforeunload = function (e) { }; }