2013-05-16 31 views
7

Tôi có một ứng dụng web ASP.NET với trang MasterPage và trang nội dung, từ MasterPage khi tôi nhấp vào MenuItem để mở Trang aspx mới. nếu tôi muốn đóng tab trình duyệt trang mới, tôi muốn hiển thị cửa sổ bật lên hoặc hộp thoại cảnh báo người dùng rằng anh ta đang đóng tab trình duyệt. Tôi không biết cách phát hiện nút đóng trình duyệtTab. tôi đã sử dụng đoạn mã sau vào trang aspx mới:cách phát hiện sự kiện Đóng trang với ASP.NET

<script type="text/javascript"> 
    function CloseWindow() { 
     alert('closing'); 
     window.close(); 
    } 
</script> 

mới mã trang sau:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();"); 
} 

Thanx Advantage.

+4

https://developer.mozilla.org/en/docs/DOM/window.onbeforeunload – tomfanning

+0

http://stackoverflow.com/questions/3888902/javascript-detect-browser-close-tab-close-browser – TheKingDave

+0

I nghĩ [this] [1] là câu trả lời của bạn. Bạn cũng có thể cung cấp xác nhận. [1]: http://stackoverflow.com/questions/1997956/javascript-window-close-event-rather-than-unload-event-for-all-browsers – taner

Trả lời

0

Bạn có thể xử lý điều này bằng javascript trong trang của mình.
Đầu tiên tạo một hàm:

function closeMessage() { 
    return "Are you sure you want to leave this page"; 
} 

Sau đó gán phương pháp này:

window.onbeforeunload = closeMessage; 

Xin vui lòng cho tôi biết nếu là hữu ích

+0

không có nó didnt giúp –

0

Bạn cần phải nắm bắt sự kiện cho đóng trình duyệt và sử dụng nó để làm bất cứ điều gì bạn muốn làm. Đây là mã làm việc cho tôi.

 <script type="text/javascript"> 
      window.onbeforeunload = function (e) { 
       var e = e || window.event; 
       if (e) e.returnValue = 'Browser is being closed, is it okay?';//for IE & Firefox 
       return 'Browser is being closed, is it okay?';// for Safari and Chrome 
      }; 
     </script> 

Hope this helps ..

0

Nếu tôi giúp bạn có được một cách chính xác, bạn muốn biết khi một tab/cửa sổ được đóng lại một cách hiệu quả. Vâng, afaik cách duy nhất của bạn trong Javascript để phát hiện rằng loại công cụ đang onunload & onbeforeunload sự kiện. Các sự kiện đó cũng được kích hoạt khi bạn rời khỏi trang web qua một liên kết hoặc nút quay lại trình duyệt của bạn. Vì vậy, đây là câu trả lời tốt nhất tôi có thể đưa ra, tôi không nghĩ rằng bạn có thể tự nhiên phát hiện một đóng thuần túy trong Javascript. Sửa tôi nếu tôi sai ở đây. Bạn có thể xem qua số browser-tab-close-detection-using-javascript-or-any-other-language

3

Công trình này hoàn hảo.

javascript detect browser close tab/close browser

<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()"> 

var myclose = false; 

function ConfirmClose() 
{ 
    if (event.clientY < 0) 
    { 
     event.returnValue = 'You have closed the browser. Do you want to logout from your application?'; 
     setTimeout('myclose=false',10); 
     myclose=true; 
    } 
} 

function HandleOnClose() 
{ 
    if (myclose==true) 
    { 
     //the url of your logout page which invalidate session on logout 
     location.replace('/contextpath/j_spring_security_logout') ; 
    } 
} 
+0

Thuộc tính 'onbeforeunload 'không phải là thuộc tính hợp lệ của phần tử' body '(XHTML 1.0 Transitional) –

1

Tôi đã có rất nhiều vấn đề với điều này bản thân mình và điều duy nhất mà làm việc là: "window.onbeforeunload" sự kiện từ javascripts nhưng vấn đề là điều này được thực hiện nhiều hơn khi bạn 'd mong đợi. Vì vậy, cơ bản nếu bạn làm việc với một trang chủ vv Tôi không nghĩ rằng nó có thể được thực hiện.

Tôi nghĩ tốt nhất là bạn nên cố gắng tiếp cận điều này một cách khác nhau vì thông báo kết thúc khác của bạn sẽ hiển thị thường xuyên.

Các vấn đề liên quan