0
我正在使用AJAX刷新頁面上的內容,因此嘗試使用HTML5中的歷史API。除了谷歌瀏覽器之外,我在所有瀏覽器中都能正常工作。下面的代碼 -onPopState()僅在Google Chrome中拋出錯誤
/**
* Reloads the ajax content if the history.state is not null
*/
window.onpopstate = function(e){
if(e.state !== null){
initiate_load_updated_page(window.history.state.ajax_string, window.history.state.security, 0)
}
}
生成此錯誤 -
Uncaught TypeError: Cannot read property 'ajax_string' of undefined
這裏是我使用pushState()
代碼 -
/** Update the page history */
if(window.history.replaceState){ // Check for HTML5 support
if(update_state !== 0){
var object = {
ajax_string: ajax_string,
security: security,
};
window.history.pushState(object, title, permalink);
}
}
我看過其他地方,谷歌Chrome瀏覽器觸發onPopState()
事件兩次,但我不確定這是否是這裏的突發事件,如果是,如何解決。
謝謝。
你們爲什麼試探,如果'e.state'爲null,但是如果使用'window.history.state'?你知道'window.history.state'不是null嗎?爲什麼不'e.state.ajax_string'? – robertc
你是先生,是天才。這看起來工作 - 甚至沒有想到這一點! –
我會將它添加爲答案:) – robertc