2015-09-10 51 views
1

是否有可能在瀏覽器上關閉警報?如果用戶確認「重新加載/關閉」,然後想執行一些Ajax的東西。這是我試過到目前爲止關於瀏覽器重新加載/刷新/關閉警報,然後ajax

window.onbeforeunload = function() { 
    return 'This will close your chat session. Are you Sure!'; 
    var meta_id = $('#meta_id').val(); 
    $.ajax({ 
     url: site_url + '/chat/send_offline', 
     type: 'post', 
     cache: false, 
     async: false, 
     data: { 
      meta_id: meta_id 
     } 
    }); 
} 

據我所知代碼return語句後無法執行。 因此,如果用戶確認,可以同時提醒並執行ajax代碼?

+0

你想使用'confirm()'而不是'return'。 – Justinas

+0

@Justinas在'onbeforeunload'事件'confirm()'或'alert()'不起作用 –

+0

實際上一些Web應用程序在運行窗體或執行http調用時出現「是否要關閉此窗口」錯誤。我認爲你可以搜索你如何激活它 – hurricane

回答

-1

也許chrome.runtime.onSuspend或chrome.windows.onRemoved會幫助你嗎?

+0

怎麼樣的Firefox,IE瀏覽器?如何使用它?鏈接到文檔? – Justinas

0

我發現這個在MDN documentation

window.addEventListener("beforeunload", function (e) { 
    var confirmationMessage = "Do you want to leave this page ?"; 

    // Call AJAX RIGHT HERE 

    e.returnValue = confirmationMessage;  // Gecko and Trident 
    return confirmationMessage;    // Gecko and WebKit 
}); 

你必須在函數返回前致電阿賈克斯。因爲返回會中斷函數的執行。

+0

這不會解決問題,因爲如果用戶在ajax調用後關閉瀏覽器並顯示警報消息,則所有操作都將錯誤(如果用戶取消瀏覽器關閉) –

+0

似乎無法捕捉到用戶的瀏覽器。 [link](http://stackoverflow.com/a/5400059/4547547) 但是,您可以使用unload事件來進行Ajax調用! https://developer.mozilla.org/en-US/docs/Web/Events/unload –

相關問題