Tôi có đề xuất cho một cách tiếp cận khác. Cho phép nói rằng bạn có một liên kết mà đi đến một số trang (nhưng sử dụng AJAX không có làm mới). Khi liên kết đó được nhấp, bạn thay đổi băm thành bất kỳ thứ gì bạn thích. Bây giờ, khi người dùng nhấp vào nút quay lại, băm sẽ thay đổi về nội dung ban đầu trước khi người dùng nhấp vào liên kết ... nhưng những gì bạn có thể làm là kiểm tra xem sự kiện nhấp có được kích hoạt trên liên kết hoặc nút hay không bộ chọn/sự kiện bạn muốn kiểm tra). Nếu nó bị sa thải, bạn biết rằng yêu cầu đến từ một lần nhấp vào chính trang đó. Nếu không có sự kiện nào bị sa thải mà bạn đang kiểm tra, bạn biết rằng nhấp chuột đến từ nút quay lại hoặc tiến.
Một điều bạn có thể làm là thêm một hậu tố để băm khi nó thay đổi (từ nút quay lại hoặc chuyển tiếp dựa trên kiểm tra của bạn của bất kỳ sự kiện bắn). Vì vậy, nếu bạn đã có một băm của #pageTitle
bạn sẽ biến nó thành #pageTitle_chrome
để chỉ ra rằng băm đã được thay đổi từ nút quay lại hoặc nút chuyển tiếp.
Sau đó, khi bạn kiểm tra băm của mình, bạn có thể chỉ xem nó có chứa _chrome
để phát hiện loại thay đổi băm nào không.