2011-09-20 87 views
0

我需要通過javascript或Jquery處理瀏覽器關閉(通過右上角的交叉)。我發現了許多論壇或博客,他們給出了使用onUnload or OnbeforeUnload等的解決方案。但是,無論何時頁面刷新或在瀏覽器中前後移動,都會觸發這些事件。 只有當用戶從應用程序或用戶註銷關閉窗口時,我才需要過期。如果我使用onUnload或OnbeforeUnload事件,它們即使在頁面刷新或返回或前進時也會觸發,因爲我已經告訴過它。如何在JavaScript或Jquery中處理瀏覽器關閉(交叉)

任何幫助真的很感激。 謝謝

+1

使用Cookie沒有到期日期? –

+0

我需要在六個小時後過期。 –

回答

1

非永久性Cookie是一種解決方法。其次,在客戶關閉標籤之前,您可以做一些小事情。 javascript detect browser close tab/close browser但如果您的動作列表很大並且選項卡在完成之前關閉,則您很無奈。你可以嘗試一下,但憑藉我的經驗不依賴於它。

window.addEventListener("beforeunload", function (e) { 
    var confirmationMessage = "\o/"; 
    /* Do you small action code here */ 
    (e || window.event).returnValue = confirmationMessage; //Gecko + IE 
    return confirmationMessage;       //Webkit, Safari, Chrome 
}); 

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/beforeunload?redirectlocale=en-US&redirectslug=DOM/Mozilla_event_reference/beforeunload

0

OnbeforeUnload可用於此目的與一些工作在。我認爲你可以使用類似wasClose = true/false的標誌值,當用戶點擊任何元素時應該將其設置爲false(如果可以接收泡泡,可以應用於div/body)。你可以從網上獲得一些js庫並使用它。我們將需要手動監視右鍵點擊目標(如果在體內)等,並決定,window.close()或點擊關閉是導致Onbeforeunload()調用的事件。

+0

感謝您的回覆,我們可以發現天氣鼠標右鍵單擊觸發HTML體內或外側?如果是這樣,你是否有任何代碼,論壇或博客參考? –

+0

同樣的點擊事件,你可以將它寫在主體中。 現在來自事件對象,你可以得到鍵碼。使用它你可以做。 – Kris

+0

感謝您的回覆。我會執行你的建議。但現在我們正在使用非持久性cookie,以便cookie在瀏覽器關閉時過期。無論如何,謝謝你。 –