Tôi đang làm việc với API lịch sử và sử dụng trạng thái push và pop. Tôi muốn ngăn chặn sự kiện popstate bắn trong một số kịch bản mà tôi chỉ thêm băm vào URL. ví dụ trong một số trường hợp khi nhấp vào neo, nó gắn thêm #
vào URL và popstate ngay lập tức bị sa thải). Tôi muốn tránh tất cả các trường hợp trong đó #
hoặc #somehasvalue
được nối vào URL và dừng popstate. Tôi đang làm chủ URL của các tham số truy vấn và tôi không có bất kỳ kịch bản nào mà tôi cần sự kiện popstate để kích hoạt với #
trong URL.ngừng kích hoạt popstate trên hashchange
Đây là mã của tôi.
if (supportsHistoryApi()) {
window.onpopstate = function (event) {
var d = event.state || {state_param1: param1, state_param2: param2};
var pathName = window.location.pathname,
params = window.location.search;
loadData(event, pathName + params, d.state_param1, d.state_param2);
}
Điều này không hoạt động khi bạn quay lại trang đầu tiên bạn mở. Bởi vì sau đó 'state' cũng là' null', nhưng vẫn không có hashchange –