2011-06-17 45 views
0

我想在window.onunload事件中彈出消息。瀏覽器關閉時window.unload上的javascript警報,但瀏覽器刷新時不應該提示

目前當用戶

一)導航離開
B)關閉窗口
三)按F5或
d)壓在瀏覽器工具欄

會出現警報刷新按鈕。

但我需要它不警告當用戶點擊瀏覽器工具欄刷新按鈕。

我們添加了條件,當用戶按下F5或導航時不提醒,但當用戶單擊瀏覽器刷新按鈕時也不會顯示提醒。

任何類型的解決方法都不錯。

+0

據我所知,這是不可能的。雖然如果你分享你需要它的原因,可以用更好的解決方案來實現。 – mihsathe 2011-06-17 12:39:42

回答

0

我可以提供一種方法來知道用戶是否點擊瀏覽器按鈕(回退,轉發,關閉瀏覽器等)。我找不到找到哪個按鈕被點擊的方法,但我希望它能幫助你。

要知道用戶是否點擊瀏覽器按鈕,請按照下列步驟操作: 1.註冊window.beforeunload事件。 2.在處理程序中,檢查event.clientY。 3.如果event.clientY不是defiend或event.clientY < 0,那麼你知道用戶點擊了一個瀏覽器按鈕。

例如:
(你可能將不得不修改代碼,它適合於您的問題)

 
function beforeUnloadHandler(eventArg) 
{ 
    var _e = window.event || eventArg; 

    // browser button click 
    if (isNaN(_e.clientY) || _e.clientY < 0) 
    { 
     // unload process will continue 
     // and unload event will be fired 
     return; 
    } 

    // a confirmation with 'test alert' text will appear 
    // if the user clicks 'Cancel', the unload process will stop 
    // and unload event won't be fired. 
    return "test alert"; 
} 
window.onbeforeunload = beforeUnloadHandler; 

這個代碼將在所有主要的瀏覽器中工作:鉻,FF,IE9,IE8,IE7 ,6,歌劇11,歌劇10,野生動物3,4,5。

相關問題