2011-07-26 28 views
40

Tôi muốn thay đổi URL mà không cần tải lại trang. Giải pháp có thể tôi tìm thấy làCách tìm xem trình duyệt có hỗ trợ History.Pushstate hay không?

window.history.pushState ('page2', 'Title', '/page2.php');

nhưng một số trình duyệt như Firefox 3.5, IE6 + không hỗ trợ này, vì vậy cho họ giải pháp là

var uri = window.location.href;

nhưng vấn đề là cách khám phá xem trình duyệt có hỗ trợ history.pushstate hay không?

TRY CATCH là giải pháp khả thi hay bất kỳ điều gì khác.

Trả lời

78
if (history.pushState) { 
    // supported. 
} 

kiểm tra nhanh nhất là để chạy trong trình duyệt giao diện điều khiển để xem nếu nó được hỗ trợ:

if (history.pushState) { alert('supported'); } 

Cũng cần chú ý rằng trong FF typeof(history.pushState) lợi nhuận "chức năng", trong khi trong IE nó sẽ trả về "không xác định"

+2

Với Firefox, khi không có lịch sử thực sự trong ngăn xếp đẩy (khi bạn là thư mục gốc của tên miền), history.pushState trả về thực sự "không xác định". Tôi không biết đây có phải là lỗi hay không, nhưng nó thực sự gây phiền nhiễu. –

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