2013-02-07 24 views
5

tôi đã cố gắng gõ mã này vào giao diện điều khiển của trình duyệt:ràng buộc sự kiện popstate không làm việc

window.onpopstate = function() {alert(1);} 

và sau đó nhấp vào nút quay lại. Không có cảnh báo nào được hiển thị. Tôi có làm gì sai không? Hoặc là nó không được phép ràng buộc sự kiện popstate đến một trang từ giao diện điều khiển?

Sử dụng Chrome 24 và Firefox 18

Trả lời

10

Loại này vào giao diện điều khiển

window.onpopstate = function() {alert(1);}; history.pushState({}, ''); 

sau đó nhấp vào nút quay lại.

+0

Bạn có thể giải thích tại sao) phần (thêm history.pushState? – Phuein

+1

@Phuein history.pushState() đang đẩy URL của mục nhập lịch sử mới. Trình duyệt không quan tâm nếu đây là URL hợp lệ và không tải lại trang bằng URL mới. Vì URL mới được cung cấp trống, URL trong thanh địa chỉ không thay đổi, nhưng khi bạn nhấp vào nút quay lại, cảnh báo sẽ được kích hoạt. –

3

Tôi thích thêm người nghe popstate như sau, để tránh đè lên những gì đã có trong window.onpopstate:

window.addEventListener('popstate', function(){alert(1);});