2010-02-25 33 views

Trả lời

8

Sự kiện được sử dụng được gọi là onbeforeunload.

<html> 
<head> 
    <script type="text/javascript" src="jquery.js"></script> 
</head> 
<body> 
    <input id="foo"></input> 

    <script type="text/javascript"> 
     function unloadMessage() { 
      return "Are you sure you want to leave?"; 
     } 

     function setConfirmUnload(enabled) { 
      window.onbeforeunload = enabled ? unloadMessage : null; 
     } 

     $(document).ready(function() { 
      $("#foo").keypress(function() { 
       setConfirmUnload(true); 
      }); 
     }); 
    </script> 
</body> 
</html> 
+0

Hãy nhớ 'window.onbeforeunload' không hoạt động trong Opera, người dùng sẽ chỉ cần điều hướng đi mà không cần cảnh báo. –

+0

Bạn có chắc là $ ("# foo"). Có vẻ như thay đổi không có hiệu lực cho đến khi trường mất tiêu điểm. –

+0

Bạn nói đúng, nó có ý nghĩa hơn khi xử lý 'nhấn phím 'thay vì' thay đổi'. Tôi đã cập nhật câu trả lời của mình. –

3

onbeforeunload sự kiện. Mozilla cung cấp mã ví dụ hữu ích. bạn chỉ muốn có một hàm:

  1. Trả về một chuỗi
  2. Sets e.returnValue để chuỗi, trong đó e là lập luận hoặc window.event.

Chuỗi sẽ được sử dụng làm thông báo tùy chỉnh của bạn.

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