Cụ thể, gọi đoạn mã sau đây:history.replaceState vẫn bổ sung thêm các mục vào "Browsing History"
history.replaceState(undefined, undefined, "#' + value)
sẽ không ảnh hưởng đến một cách chính xác vào nút quay lại hành vi của trang hiện tại, nhưng sẽ thêm một nhập vào trang "lịch sử duyệt web". Ảnh dưới đây là của Chrome, nhưng điều này cũng xảy ra trong Firefox.
Có cách nào để thay thế URL hiện tại mà không thêm mục nhập vào lịch sử duyệt web của người dùng không?
Tôi đã tự hỏi về điều này nhưng cũng chưa bao giờ tìm thấy câu trả lời. –
Tôi không nghĩ rằng những gì bạn đang yêu cầu là có thể với api lịch sử, nếu có. "history.replaceState() hoạt động giống như history.pushState() ngoại trừ replaceState() sửa đổi mục nhập lịch sử hiện tại thay vì tạo một mục mới." https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history –
@realseanp Quyền và ảnh chụp màn hình của OP cho thấy rằng replaceState đang tạo các mục nhập riêng biệt mới. Trong Chrome Canary hiện tại, với lịch sử và bộ nhớ cache bị xóa, tôi vẫn nhận được hành vi tương tự. Nút quay lại bước qua trạng thái "được thay thế". – Ben