2015-05-29 55 views
0

如何編寫一個函數,當用戶嘗試離開頁面時將顯示警報?離開頁面時的事件

我一直在考慮在網站的最頂端有一個1px高的div,當用戶將它懸停時出現一個提醒,但我不能把它放在那裏,我爲此目的放置的較少的html代碼更好。

我一直在想的另一種方法是卸載,或者在卸載事件之前,但它們似乎已被棄用。

我該怎麼做?

+1

'但他們似乎被棄用'你怎麼形象? – Jonathan

+0

下面是從戰後初期一些更多的信息: http://stackoverflow.com/questions/2858057/javascript-function-on-web-page-close – Sly321

+0

'onbeforeunload'有這個想法,但是要請注意,99%的可能影響這種情況的場景確實是非常有創意的,並且是一種惹人注目的舉動(因此瀏覽器爲什麼不一致地處理它)。在1%的情況下,它可能是好的,當有一個未提交的表單時,用戶會後悔關閉。對於這種情況,請查看引用「表單污點」的現有庫。 – Anthony

回答

3

如何編寫一個函數,當用戶嘗試離開頁面時將顯示警報?

做到這一點的唯一方法是使用onbeforeunload,你會得到非常難以控制:基本上,你可以提供這將可能(但只可能*)顯示給用戶的消息。用戶將得到兩個選擇:繼續前進,離開,或留下。

onbeforeunload是一個非常不尋常的事件。這裏是你如何把它掛:

window.onbeforeunload = function() { 
    if (youWantToShowAMessage) { 
     return "The message goes here."; 
    } 
}; 

另一種方法我一直在想的是卸載,或beforeunload事件,但他們似乎被棄用。

我不知道那些被棄用。你可以在做什麼在他們是非常有限的(有充分的理由),但直到有一個替代品,onbeforeunload有用的目的:它讓網頁告訴用戶他們可能會失去一些東西(如未保存的工作),當他們離開。目前的機制只允許一條消息,而其他很少的行爲是一個體面的行爲:它使用戶得到控制,但讓頁面變得有用。


* Mozilla已經調情,只是顯示一條通用消息,沒有顯示您的消息。