gpt4 book ai didi

javascript - Failed to execute 'pushState' on 'History' error when using window.history.pushState 函数

转载 作者:技术小花猫 更新时间:2023-10-29 12:01:06 26 4
gpt4 key购买 nike

我在 JavascriptMVC 应用程序中使用 window.history 来为每个 Controller 启用后退/前进/刷新功能。每次加载新 Controller 时,我都会使用 window.history.pushState 将新状态添加到历史记录中。然后在返回/刷新时,我使用保存的状态并重用数据再次构建 Controller 。

除特定场景下的一个问题外,整个想法工作正常。我收到以下错误:

Failed to execute 'pushState' on 'History': An object could not be cloned.

在其他情况下添加相同的数据没有问题。什么会导致此错误?感谢您的协助。

最佳答案

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

“状态对象可以是任何可以被序列化的东西。因为 Firefox 将状态对象保存到用户的磁盘中,以便在用户重新启动浏览器后可以恢复它们,我们对一个序列化表示施加了 640k 个字符的大小限制state 对象。如果将序列化表示大于此的状态对象传递给 pushState(),该方法将抛出异常。如果您需要比这更多的空间,建议您使用 sessionStorage 和/或 localStorage。"

看起来简单的答案是您传入的状态可能序列化为大于 640k。我刚刚遇到了这个错误,我几乎可以肯定这就是原因。

关于javascript - Failed to execute 'pushState' on 'History' error when using window.history.pushState 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425885/

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