![](/img/trans.png)
[英]How to determine if onbeforeunload has been caused by clicking a link in Chrome
[英]how to identify onbeforeunload was caused by clicking close button
如何確定onbeforeunload是由單擊關閉按鈕或頁面刷新引起的,還是一般由onbeforeunload引起的事件?
這是一個片段:
window.onbeforeunload = function( e ){
if( !e ) e = window.event;
// insert code to determine which is the source of the event
}
請幫我。
通過參考各種文章並進行一些試驗和錯誤,最終提出了這個想法,該想法對我來說非常合適,就像我希望它發生的方式一樣。 邏輯也很容易實現,其思想是檢測關閉瀏覽器觸發的卸載事件。 在這種情況下,鼠標將不在窗口外,指向Close('X')按鈕。
$(window).on('mouseover', (function () {
window.onbeforeunload = null;
}));
$(window).on('mouseout', (function () {
window.onbeforeunload = ConfirmLeave;
}));
function ConfirmLeave() {
return "";
}
ConfirmLeave函數將提供彈出的默認消息,如果需要自定義消息,則返回要顯示的文本而不是空字符串
看看是否有幫助,:)
據我所知,無法確定導致onbeforeunload
。 當窗口即將關閉時,無論是關閉瀏覽器還是其他方式,都會觸發該事件。
如果按下關閉按鈕,則e.clientY
值為負。 對於其他可能的來源,我懷疑是否有解決方案。
window.onbeforeunload = function() {
var e = window.event;
alert(e.clientX + " / " + e.clientY);
}
我搜索了類似的內容,但最終空手而歸。 所以我嘗試做相反的
我們可以識別所有事件,但瀏覽器事件除外。 請參閱下面的(未經測試的)代碼段。
var target = $( e.target );
if(!target.is("a, :button, :submit, :input, .btn, .bulkFormButton")){
//Your code for browser events)
}
$("form").submit(function () {
//Your code for browser events)
});
這對我有用,但仍有一些未處理的事件。 我正在尋找那些。 如果有人對他們有想法,請分享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.