2012-08-24 70 views
1

從出於好奇我可以控制window.onbeforeunload事件,如檢查用戶是否決定離開頁面或停留在它,我可以提出警報或某些功能基於他的決定如果是請告訴我控制window.onbeforeunload事件

<script type="text/javascript"> 
$(window).bind("beforeunload",function(){ 
if(//stay on page) 
alert("i want to stay on the page"); 
else //leave page 
alert("i want to leave the page"); 
}); 
</script> 

我明白window.onbeforeunload是給用戶的消息告訴他,也許你忘了你離開之前做一些事件,但這個任務僅僅是出於好奇,並感謝您

+0

我只是做一些研究,我的目標是不點火警報消息像例如我的目標是觸發做一些JavaScript函數的JavaScript代碼 – Sora

回答

0

您不能得到onbeforeunload的結果。此外,即使您設法找出了獲得結果的方法,您也無法提出警報。你可以運行另一個函數。

The showModalDialog(), alert(), confirm() and prompt() methods are now allowed to do nothing during pagehide, beforeunload and unload events.

+0

爲什麼?是不是他們的任何工作,我可以做 – Sora

+0

@索拉不,自從瀏覽器沒有實現這種方式沒有實現。 –

+0

謝謝你這是一個非常好的答案 – Sora

1

你只能返回一個字符串,它會顯示一個對話框,確認您顯示返回的字符串(但是,隨着更多的確定/取消按鈕確認操作)。

<script type="text/javascript"> 
$(window).bind("beforeunload",function(){ 
return 'Are you sure you want to leave this page?'; 
}); 
</script> 
0

把一秒鐘的計時器。在卸載時清除它。應該工作,但沒有測試它。

window.addEventListener('beforeunload', function (event) { 

    var timeId = setTimeout(yourFunctionIfTheUserStays, 1000); 

    window.addEventListener('unload', function (event) { 
    clearTimeout(timeId); 
    }) 
    return 'Are you sure you want to leave this page?'; 
});