我知道如果顯示警告給用戶,如果他們嘗試從當前頁面導航,詢問他們是否確實希望這樣做,但我想知道是否有方法顯示此警報僅在窗口/選項卡關閉時出現? 我只想在窗口或標籤關閉時顯示確認信息,而不是在用戶單擊鏈接時顯示。檢測瀏覽器/選項卡關閉
回答
不可能。
唯一關閉的事件是onbeforeunload
事件,但是在關閉的窗口/選項卡或導航到另一個頁面之間沒有區別(對於javascript)。
後續:
我想你可以點擊處理程序附加到每個錨在頁面上,並使用「髒」的標誌,但是這真的砍十歲上下。類似(原諒我,但使用jquery爲簡單起見):
(function(){
var closingWindow = true;
$('a').on('click', function(){
if (this.href == /* on-domain link */){
closingWindow = false;
}
});
$(window).on('beforeunload',function(){
if (closingWindow){
// your alert
}
});
})();
但這就是儘可能靠近你會得到什麼。 注意:如果另一個javascript函數使用window.location
等,這不會有所幫助。
您無法區分這兩者。
window.onbeforeunload
被觸發之前的瀏覽器卸載它的資源。你不知道卸載的原因,只知道它是即將發生:
從MDN:
事件當窗口即將
unload
其資源火災。 該文件仍然可見,並且event is still cancelable
。
我很害怕那個......無論如何感謝你的幫助! – John
如何做這樣的事情?
有一個全局變量設置爲false(即
var hasCLickedLink = false;
)在所有的鏈接(
<a>
),附加一個事件處理程序,將變量設置爲true
在
onbeforeunload
,檢查變量的值以查看鏈接是否已被點擊。如果它仍然是false
,那麼他們沒有點擊鏈接,所以給他們警報。
不錯的解決方案,但它不會回傳和轉發按鈕點擊。 – BenM
您需要明確指定您不想顯示確認對話框的events
。
var validNavigation = 0;
function bindDOMEvents() {
// Attach the event keypress to exclude the F5 refresh
$(document).keydown(function(e)
{
var key = e.which || e.keyCode;
if (key == 116)
{
validNavigation = 1;
};
});
// Attach the event click for all links in the page
$("a").bind("click", function()
{
validNavigation = 1;
});
// Attach the event submit for all forms in the page
$("form").bind("submit", function()
{
validNavigation = 1;
});
// Attach the event click for all inputs in the page
$("input[type=submit]").bind("click", function()
{
validNavigation = 1;
});
};
$(document).ready(function()
{
bindDOMEvents();
window.onbeforeunload = function() {
console.log(validNavigation);
if (validNavigation == '1')
{
console.log("No Alert.. Continue");
}
else
{
return false;
}
};
});
- 1. 瀏覽器選項卡關閉在gwt中檢測
- 2. 如何檢測瀏覽器窗口/選項卡關閉事件?
- 3. 如何檢測瀏覽器選項卡中的關閉?
- 4. 如何檢測瀏覽器/選項卡已關閉
- 5. 檢測關閉選項卡/瀏覽器沒有消息等?
- 6. 誰關閉了瀏覽器選項卡?
- 7. 調用PHP時,瀏覽器或瀏覽器選項卡關閉
- 8. 其他選項卡關閉時刷新瀏覽器選項卡
- 9. 關閉瀏覽器/選項卡上的會話關閉
- 10. MEAN stack,PassportJS:檢測客戶端何時關閉瀏覽器選項卡
- 11. 通過js檢測瀏覽器窗口/選項卡關閉事件
- 12. 通過Mobile Safari中的JavaScript檢測關閉瀏覽器選項卡?
- 13. 檢測瀏覽器上的關閉當前選項卡並調用ajax函數
- 14. 我如何檢測瀏覽器選項卡刷新或關閉使用javascript
- 15. Javascript檢測瀏覽器關閉
- 16. Flex BlazeDS檢測瀏覽器關閉
- 17. 檢測vb.net瀏覽器關閉事件
- 18. 如何檢測瀏覽器關閉?
- 19. 在Asp.net上檢測瀏覽器關閉
- 20. 在ASP.NET中檢測關閉瀏覽器
- 21. 窗口和選項卡關閉檢測
- 22. 你能使用JavaScript來檢測用戶是否關閉了瀏覽器選項卡嗎?關閉瀏覽器?或已經離開瀏覽器?
- 23. AngularJS:服務器調用選項卡/瀏覽器關閉
- 24. 檢測用戶瀏覽器是否關閉瀏覽器
- 25. 檢測刷新瀏覽器卸載/ beforeunload當瀏覽器關閉
- 26. 檢測瀏覽器關閉在jquery/JavaScript跨瀏覽器
- 27. 瀏覽器 - 檢測瀏覽器關閉或標籤接近
- 28. JavaScript關閉所有其他瀏覽器選項卡或子選項卡
- 29. 檢測瀏覽器選項卡切換/瀏覽器使用javascript最小化
- 30. 當瀏覽器選項卡關閉時銷燬會話
呃這就是我害怕...謝謝反正! – John