Я могу установить данные в State.data of History.js, например:
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;
});
}
Если я установлю точку останова в операторе window.History.pushState, в Chrome я могу четко видетьpushStateData имеет желаемые значения.
Однако, когда я пытаюсь получить данные:
$(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);
}
});
Когда я устанавливаю точку останова в операторе RetrievePageResults, объект State.data больше не имеет никаких значений, которые я установил.State.data определен и не является нулевым, но это пустой объект без каких-либо видимых значений.
Спасибо, Скотт