2010-08-30 32 views
5

Tôi có một khách hàng chỉ cần có Apple Magic Mouse. Chúng tôi đã xây dựng trang web công thức và cô ấy rất khó chịu khi cô ấy nhập tất cả thông tin cho công thức, sau đó đi chuột mới và vô tình cuộn sang phải và nó sẽ thực hiện Duyệt lại và tất cả thông tin của cô ấy sẽ bị mất. Vì vậy, cô ấy muốn cảnh báo/bật lên để ngăn điều này xảy ra trên trang đó.Ngăn chặn tình cờ Quay lại

Bất kỳ đề xuất nào hoặc chỉ cho tôi một số JS thực hiện điều này?

Trả lời

11

Đây là tập lệnh 'cảnh báo trước khi rời' cơ bản. Khi người dùng nhấn một phím trong textarea, người dùng sẽ được thông báo if (s) anh sắp rời khỏi trang:

<script type="text/javascript"> 
var changes = false; 
window.onbeforeunload = function(){ 
    if(changes){ 
     return "You're about to leave this page."; 
    } 
}; 
</script> 
<textarea onkeypress="window.changes=true">recipe here</textarea> 

Ngoài ra, bạn có thể lưu trữ các nội dung của textfield trong một biến khi trang tải và so sánh nó sau đó. Điều này sẽ lấy đi một số nhầm lẫn khi khách truy cập chỉ cần nhấn các phím mũi tên trong vùng văn bản mà không thực sự sửa đổi nó.

+0

+1 đây là cách Gmail cũng thực hiện điều đó. –

+0

Vâng, nếu có những kẻ thù dũng cảm bị tấn công bằng cách sử dụng mã kế thừa này, WebKit (Google Chrome, Safari) không hỗ trợ tải trước bằng 'addEventListener'. – Lekensteyn

+0

Cách đáng tin cậy duy nhất là đặt onbeforeunload làm thuộc tính của cửa sổ. Vì chỉ nên có một trang cho mỗi trang, nên không có lý do nào bạn muốn sử dụng addEventListener. –

0

Vì vậy, cô ấy muốn cảnh báo/bật lên để ngăn điều này xảy ra trên trang đó.

Bạn có thể móc vào sự kiện onBeforeUnload của trình duyệt và sau đó hiển thị thông báo xác nhận.

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