2014-11-07 17 views
10

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?

Chrome Browser History

+0

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. –

+0

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 –

+0

@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

Trả lời

-2

Cách chính xác để làm cho nó đang sử dụng phương pháp replaceState. Trong các bài kiểm tra mà tôi đã làm, nó hoạt động rất tốt trong cả chrome và firefox - lịch sử đã không thay đổi sau khi chạy replaceState.

+0

Tôi nghĩ rằng bạn đang hiểu sai câu hỏi - Tôi đang hỏi về trang Lịch sử trình duyệt độc lập, không phải lịch sử điều hướng trang thực tế mà nút quay lại sử dụng. –

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