2011-09-19 15 views
5

Chúng tôi đang làm việc trên một dự án bằng cách sử dụng window.history.replacestate. Thật không may, chúng tôi không giỏi javascript.'Dữ liệu' trong window.history.replaceState

Về cơ bản, chúng tôi đang sử dụng nó để thay thế bất kỳ số lượng liên kết ngắn nào thành liên kết 'gốc'. Ví dụ:

domain.com/fJfk8 
domain.com/9dkDl 
domain.com/fjgdD 

sẽ tất cả 'xuất hiện' như:

domain.com/nice_url 

Nó không phải làm việc vì vậy chúng tôi sẽ đưa javascript trong trang và trong các trình duyệt nó thì tuyệt vời và nếu không, họ sẽ nhận được shortcode.

Lưu ý: chúng tôi không muốn có lịch sử!

Vì vậy, chúng tôi chỉ sử dụng:

window.history.replaceState('Object','Nice URL Title', '/nice_url'); 

Câu hỏi đặt ra là điều này dường như làm việc nhưng chúng tôi không hiểu được 'đối tượng' (dữ liệu) phần.

Chính xác là gì?

Trả lời

3

Bạn có thể đặt tham số Object thành dữ liệu không gian, sẽ có sẵn trong thông số state của đối tượng event có sẵn trong sự kiện popstate.

Nói cách khác, bạn có thể đặt nó thành bất kỳ thứ gì bạn muốn, để giúp bạn khôi phục trang web về trạng thái mong muốn khi người dùng điều hướng qua lịch sử của họ.

Để biết thêm thông tin, hãy xem MDC documentation on window.history.

window.history.replaceState({ 
    foo: 'bar' 
}, 'Nice URL Title', '/nice_url'); 

window.onpopstate = function (e) { 
    if (typeof e.state == "object" && e.state.foo == "bar") { 
     alert("Blah blah blah"); 
    } 
}; 

window.history.go(-1); 
+0

OK (Nhanh chóng đọc những gì heck popstate là ..). Vì vậy, .. trong trường hợp của chúng tôi, vì chúng tôi không cần phải làm bất cứ điều gì nếu người dùng trở về thông qua lịch sử vì Url sẽ làm việc trong trạng thái thay đổi - chúng tôi chỉ có thể để trống này? –

+0

@Mike: Bạn rất có thể sẽ làm như vậy. Nếu người dùng điều hướng ngược trong lịch sử của họ đến một trang nằm trong ngăn xếp lịch sử thông qua 'pushState' hoặc' replaceState', trang sẽ không tự động cập nhật; tùy thuộc vào bạn để nắm bắt sự kiện 'onpopstate' và thay đổi trang thành trạng thái mong muốn. – Matt

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