2015-05-29 70 views
-1

問題:

我正在使用ASP.NET Web窗體,c#。在頁面關閉前執行JS函數|重定向

我需要在頁面關閉之前執行一個JS函數 - 任何它關閉的方式 - 是一個重定向或任何其他方法。

額外的信息:

由於一些額外的信息;該函數將HTTP POST發送到不同的頁面,我需要一些服務器端代碼來執行。

記住這個信息 - 一個解決方案允許我在頁面關閉時執行服務器端代碼也適用於我。

+0

不能做,不可能。這個功能過去被人們濫用太多了。 *有一個onpageunload事件,但沒有什麼可以確保你的ajax不會超時 - 事實上很可能。也沒有辦法處理「頁面關閉」網絡連接丟失,電源消失等。 –

+0

由於這是一個客戶端功能,你不需要一個涉及ASP.NET的解決方案,但只有JavaScript – ericosg

+0

我想這可能是不可能的。去考慮一下我的問題的其他解決方案。謝謝。 – Terrance00

回答

1

查看JavaScript功能window.onbeforeunload

本質上,瀏覽器在檢測到頁面正在關閉時觸發此事件,並允許您通過從此函數返回字符串來自定義消息。

但是,您不能控制用戶是否想要提前或意外地強制關閉頁面。

window.onbeforeunload = function(e) { 
    // do some ajax post here 
    // 

    // Display a message (or generic message in some browsers) and allow the user to cancel leaving the page. 
    return 'Dialog text here.'; 
}; 

請注意,此解決方案試圖警告用戶,並允許卸載被取消。這可能不適合你,但應該工作。

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload