2010-01-04 32 views
10

Tôi muốn cảnh báo người dùng trong khi người dùng cố gắng đóng trình duyệt bằng cách thoát khỏi siginingoff hoặc không lưu một số cài đặt.Sự kiện đóng cửa sổ Javascript thay vì dỡ sự kiện cho tất cả các trình duyệt

Tôi ding dỡ bỏ tùy chọn trong một trang khác để cảnh báo dữ liệu dỡ bỏ, nhưng làm thế nào tôi có thể cảnh báo người dùng trên window.close (mình không dùng)

window.onbeforeunload = confirmExit; 
function confirmExit(){ 
    if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0") 
    { 
     return "You are leaving a video which is in play mode.Are you sure want to exit this page?"; 
    } 
    else{ 
     Confirm_Delete="0"; 
    } 
} 

Tôi muốn window.close kiếm trên tab gần gũi và trên cửa sổ đóng trong tất cả các trình duyệt.

Hãy tìm cho tôi một giải pháp

Trả lời

7

Mã trường hợp bạn đã có vẻ làm việc khi tôi thử nghiệm nó. Bạn chỉ cần trả về false để ngăn trình duyệt đóng lại. Người dùng sẽ được hỏi xem họ có chắc chắn muốn điều hướng khỏi trang không.

Tôi đang sử dụng phiên bản rút gọn này của mã của bạn:

window.onbeforeunload = confirmExit; 
function confirmExit(){ 
    alert("confirm exit is being called"); 
    return false; 
} 
+0

Cảm ơn bạn đã trả lời @ richard, Trên thực tế nó làm việc cho tab gần nhưng ở đây tôi cần cho cửa sổ gần cũng. Khi tôi đóng cửa sổ của nó không dùng. – Elamurugan

+0

Tôi đã thử nghiệm trong Firefox 3.5 và nó đã làm, bạn đang sử dụng trình duyệt nào? –

+0

Cũng được thử nghiệm trong IE8 và nó hoạt động. (Đã thêm ví dụ về mã thử nghiệm của tôi vào câu trả lời của tôi để bạn kiểm tra) –

6

Các Mozilla documentation chỉ ra rằng bạn nên thiết lập các event.returnValue thay vì chỉ đơn giản là trả về một chuỗi:

window.onbeforeunload = confirmExit; 
function confirmExit(e){ 
    if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0") 
    { 
     var msg = "You are leaving a video which is in play mode.Are you sure want to exit this page?"; 
     if (e) { 
      e.returnValue = msg; 
     } 

     return msg; 
    } 
    else{ 
     Confirm_Delete="0"; 
    } 
} 
+0

Cảm ơn bạn đã trả lời của bạn @ cướp, Trên thực tế làm việc của mình cho tab gần đây nhưng tôi cần phải cho đóng cửa sổ cũng có. Khi tôi đóng cửa sổ của nó không dùng. – Elamurugan

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