tôi có thể thiết lập dữ liệu vào State.data của History.js, như thế này:HTML5 pushState bằng cách sử dụng History.js. Rắc rối lấy dữ liệu từ State.data
var pushStateData = {};
function RetrieveSearchResults(type, url, searchData) {//, showResetButton,
controlToFocus, navDirection) {
pushStateData = {
SearchType : type,
SearchData : searchData,
};
RetrievePageResults(true, url, pushStateData);
}
function RetrievePageResults(pushNewUrl, url, pushStateData) {
navigationInProgress = true;
if (pushNewUrl) {
if (window.History) {
window.History.pushState(pushStateData, null, url);
}
$.get(url, pushStateData.SearchData, function (reply) {
$("#search-results").html(reply);
navigationInProgress = false;
});
}
Nếu tôi đặt một breakpoint trên báo cáo kết quả window.History.pushState, trong Chrome, Tôi có thể thấy rõ ràng pushStateData có giá trị mong muốn.
Tuy nhiên, khi tôi cố gắng để lấy dữ liệu:
$(window).bind("statechange", function (e) {
if (!navigationInProgress) {
var State = window.History.getState();
if (window.console && window.console.log) {
console.log("popstate", State, window.location.href);
}
RetrievePageResults(false, State.cleanUrl, State.data);
}
});
Khi tôi đặt một breakpoint trên báo cáo kết quả RetrievePageResults, Đối tượng State.data không còn có bất kỳ giá trị tôi đặt. State.data được định nghĩa, và không phải là null, nhưng nó là một đối tượng rỗng mà không có bất kỳ giá trị rõ ràng nào.
Cảm ơn, Scott
Cảm ơn bạn Mohamed, xin vui lòng tôi muốn hỏi bạn, có bao giờ bạn sử dụng trong tham số thứ ba của pushState một URL có chứa các từ tiếng Ả Rập. http://stackoverflow.com/questions/16259226/history-js-pushstate-and-arabic-words-in-urls –
Tôi có cùng một vấn đề và tôi có thể quản lý chỉ gửi thông số trạng thái trong dữ liệu và nếu tôi cố gắng tiết kiệm bất cứ điều gì khác tôi không thể truy xuất nó. Tôi nghĩ đó là câu hỏi –