前段時(shí)間,一直在做web項(xiàng)目,總是出現(xiàn)一個(gè)問(wèn)題:用戶輸入了一些內(nèi)容后,不小心關(guān)掉了瀏覽器窗口,或是跳轉(zhuǎn)到了其它頁(yè)面,沒(méi)有任何的提示,但是數(shù)據(jù)就沒(méi)有了,其實(shí)跳轉(zhuǎn)還好辦,難就難在關(guān)閉瀏覽器時(shí)要給出一個(gè)提示,很是頭痛,上網(wǎng)查了很多東東,但都沒(méi)有結(jié)果,



,很是郁悶。
今天無(wú)意識(shí)的在關(guān)閉一篇沒(méi)有寫完的隨筆時(shí),突然發(fā)現(xiàn)有“如果不保存就會(huì)丟失內(nèi)容”的提示。很是激動(dòng)。就查看了原文件,雖然很多亂碼,但好在還有一部分可讀的,終于讓我發(fā)現(xiàn)了
onbeforeunload事件 ,

,很是開(kāi)心。在BlogJava中,它是這樣用的:
<script language="javascript">
g_blnCheckUnload = true;
function RunOnBeforeUnload() {
if (g_blnCheckUnload) {window.event.returnValue = 'You will lose any unsaved content';
}
}
</script>
<body onbeforeunload="RunOnBeforeUnload()">
</body>
這樣每次關(guān)閉瀏覽器窗口或涮新頁(yè)面時(shí),都要觸發(fā)onbeforeunload這個(gè)事件,這樣可以對(duì)用戶進(jìn)行提示,避免不必要的遺憾。
我上網(wǎng)又查了一些這個(gè)事件的用法,感覺(jué)還是
http://www.surfchen.org/?p=54這篇寫得最清楚了,摘抄如下:
onbeforeunload事件:
注:三大主流瀏覽器中firefox和IE都支持onbeforeunload事件,opera尚未支持。
用法:
- object.onbeforeunload = handler
- <element onbeforeunload = “handler” … ></element>
描述:
事件觸發(fā)的時(shí)候彈出一個(gè)有確定和取消的對(duì)話框,確定則離開(kāi)頁(yè)面,取消則繼續(xù)待在本頁(yè)。
handler可以設(shè)一個(gè)返回值作為該對(duì)話框的顯示文本。
觸發(fā)于:
- 關(guān)閉瀏覽器窗口
- 通過(guò)地址欄或收藏夾前往其他頁(yè)面的時(shí)候
- 點(diǎn)擊返回,前進(jìn),刷新,主頁(yè)其中一個(gè)的時(shí)候
- 點(diǎn)擊 一個(gè)前往其他頁(yè)面的url連接的時(shí)候
- 調(diào)用以下任意一個(gè)事件的時(shí)候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
- 當(dāng)用window open打開(kāi)一個(gè)頁(yè)面,并把本頁(yè)的window的名字傳給要打開(kāi)的頁(yè)面的時(shí)候。
- 重新賦予location.href的值的時(shí)候。
- 通過(guò)input type=”submit”按鈕提交一個(gè)具有指定action的表單的時(shí)候。
可以用在以下元素:
BODY, FRAMESET, window
平臺(tái)支持:
IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+