gpt4 book ai didi

javascript - onPopState() 仅在 Google Chrome 中抛出错误

转载 作者:行者123 更新时间:2023-12-02 20:01:37 27 4
gpt4 key购买 nike

我正在使用 AJAX 刷新页面上的内容,因此尝试使用 HTML5 中的历史记录 API。除了 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);
}
}

我在其他地方读到 Google Chrome 触发 onPopState() 事件两次,但我不确定这是否是这里的问题,如果是,如何解决。

谢谢。

最佳答案

在您的 popstate 处理程序中,您应该使用 e.state 而不是 window.history.state:

if(e.state !== null){
initiate_load_updated_page(e.state.ajax_string, e.state.security, 0)
}

关于javascript - onPopState() 仅在 Google Chrome 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com