2010-02-24 21 views
12

Với onclick="history.go(-1);return false;" người dùng có thể điều hướng đến các trang sau. Nhưng nếu tôi muốn đặt một phương thức xác nhận trước khi nó đưa người dùng về phía sau. Tôi sẽ làm như thế nào?Làm thế nào để thiết lập chuyển hướng javascript để gửi người dùng đến trang trở lại? xem mã

Tôi nghĩ rằng nó có thể đạt được bằng cách làm một cái gì đó như dưới đây nhưng tôi không chắc chắn làm thế nào để chuyển hướng người dùng đến trang trở lại?

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     //window.close(); 
     // how to redirect to history.go(-1) ?? 
    }   
    return false; 
}); 

CẬP NHẬT

Cũng là có cách nào tôi có thể kiểm tra xem lịch sử có một số giá trị trong nó hoặc là trống rỗng? Để tôi có thể cảnh báo người dùng nếu trống?

Trả lời

29

Nó khá đơn giản như bạn nghĩ rằng đó là:

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.go(-1); 
    }   
    return false; 
}); 
+0

oh tôi nên đã thử nó đầu tiên trước khi hỏi. để tôi thử. – user187580

+0

là có cách nào để kiểm tra xem có "thứ gì đó" trong lịch sử .. nghĩa là không trống rỗng, v.v ... không? – user187580

+0

Có tồn tại thuộc tính history.previous nhưng khi JSRef tuyên bố nó * yêu cầu đặc quyền UniversalBrowserRead. Nó không có giá trị nếu bạn không có đặc quyền này. Để biết thông tin về bảo mật, hãy xem Hướng dẫn JavaScript phía máy khách. * – anddoutoi

9

Hãy thử điều này:

if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.back(); 
    }  
+0

nó có thể được đặt trong onclick = "return confirm ('confirm message')"; ?? – user187580

+0

Bạn đã thử chưa? –

+0

có thể đặt ở đó, dùng thử. – Sarfraz

3
$('.clickme').click(function() { 
     if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       history.go(-1); 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 
1
<script type="text/javascript" language="javascript"> 

function goBack() 
{ 
window.history.back() 
} 

window.onkeyup = function (e) 
{ 
if (e.keyCode == 27) window.history.back(); 
} 
</script> 

Thêm trên mã trong phần đầu của bạn của trang. Ở đây bất cứ khi nào người dùng nhấn nút Esc thì anh ta sẽ được chuyển hướng đến trang xem trước đó và nếu chúng tôi muốn thêm logic này vào nút quay lại thì chỉ cần gọi goback() về sự kiện nhấp chuột.

1
$('.clickme').click(function() { 
    if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       document.location.replace(document.referrer) 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 

(Mã này thu hút rất nhiều về câu trả lời của Dodswarm.)

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