Có thể điều này sẽ phù hợp với bạn.
<html>
<body onunload="disableBackButton()">
<h1>You should not come back to this page</h1>
</body>
<script>
function disableBackButton()
{
window.history.forward();
}
setTimeout("disableBackButton()", 0);
</script>
</html>
Đoạn mã trên sẽ khiến bạn khó sử dụng nút quay lại để tải trang này.
Lần thử thứ hai
Mã bên dưới được lấy từ một ngăn xếp ngăn xếp khác.
detect back button click in browser
window.onload = function() {
if (typeof history.pushState === "function") {
history.pushState("jibberish", null, null);
window.onpopstate = function() {
history.pushState('newjibberish', null, null);
// Handle the back (or forward) buttons here
// Will NOT handle refresh, use onbeforeunload for this.
};
}
else {
var ignoreHashChange = true;
window.onhashchange = function() {
if (!ignoreHashChange) {
ignoreHashChange = true;
window.location.hash = Math.random();
// Detect and redirect change here
// Works in older FF and IE9
// * it does mess with your hash symbol (anchor?) pound sign
// delimiter on the end of the URL
}
else {
ignoreHashChange = false;
}
};
}
}
Nguồn
2013-05-21 16:59:22
Theo dõi các trang đã ghé thăm, nếu trang hiện chuyển hướng đến trang cuối cùng đã đến thăm, rất có thể là hướng ngược. – adeneo
Sẽ tốt hơn nếu bạn minh họa bằng một ví dụ. liên quan –
PushState đẩy trạng thái mới trong ngăn xếp (trạng thái là một số dữ liệu được lưu trữ sau một hành động mới). Nó không có mối quan hệ với trở lại và đi. Quay lại và đi là các hàm để điều hướng qua các trạng thái được đẩy trong ngăn xếp. Tôi nói điều này bởi vì trong bản chỉnh sửa của bạn, có vẻ như bạn đang nghĩ rằng pushState và đi (1) là tương đương. –