2011-04-27 180 views
2

我有一個網頁,看起來像:檢測vb.net瀏覽器關閉事件

<%@ Page Language="vb" AutoEventWireup="false" MasterPageFile = "~/Master11.master" CodeBehind="test7.aspx.vb" Inherits="MyApp.test7" %> 

<%@ MasterType TypeName = "ASP.sample_template_master" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="mainContent1" runat="server"> 
</asp:Content> 

當用戶關閉瀏覽器,我想如果用戶想退出之前保存顯示確認框。

如果他說是,那麼我希望將信息保存在數據庫中並關閉瀏覽器,否則我只關閉瀏覽器。

我閱讀msdn論壇,但我發現所有窗口關閉事件,我無法在這裏適用。

請幫忙。

謝謝, krum_cho。

+0

窗戶關閉和瀏覽器關閉之間有什麼不同?任何人,你將不得不使用JavaScript來做到這一點 - 如果你真的想要的話,你總是可以通過AJAX將它傳遞迴VB.NET。有沒有理由不能使用JavaSCript? – 2011-04-27 03:27:02

+0

@Thomas:謝謝。但我對Ajax不太瞭解。我想過使用JavaScript。但是我不能想出一個會觸發該函數的事件(因爲我沒有一個表單,我可以在這裏有一個事件onClose())。我嘗試使用window.closing事件,但它不支持Web應用程序(至少我的類引發錯誤)我的test7.aspx.vb看起來像部分公共類test7 Inherits System.Web.UI.Page End Class – 2011-04-27 03:33:22

+1

onclose事件在客戶端觸發。將它放入在服務器上運行的ASP.NET代碼中並沒有什麼好處。您需要將它放在HTML中的腳本標記中。 – JohnFx 2011-04-27 04:05:30

回答

0

請嘗試使用以下JavaScript語句。

window.onbeforeunload = function() { 
     if ((window.event.clientX < 0) || (window.event.clientY < 0) || (window.event.clientX < -80)) { 
      alert("Child window is closing..."); 
     } 
    }; 
+0

@Thomas:謝謝。有什麼辦法可以將控制權轉移到代碼隱藏文件,以便我可以將信息保存在數據庫中。 – 2011-04-27 04:13:48

+0

可能嘗試使用JavaScript來提交表單...這是未經測試,但:文檔。<%= YourForm.ClientID%>。提交()' – 2011-04-27 12:22:28

+0

@Thomas:我真的沒有一個「表格」,我只有一個「內容」。此頁面使用masterPage。 – 2011-04-29 02:02:21