当前位置: 首页 > 知识库问答 >
问题:

未能执行“pushState”“历史”的错误

龙德义
2023-03-14

我正在使用<code>窗口。JavascriptMVC应用程序中的历史记录,为每个控制器启用后退/前进/刷新功能。每次加载新控制器时,我都在使用<code>window.history。按下状态,将新状态添加到历史记录中。然后在返回/刷新时,我使用保存的状态并重用数据来再次构建控制器。

除了一个特定场景的问题外,整个想法都很好。我得到以下错误:

未能执行“pushState”“历史”:一个obj

在其他场景中添加相同的数据没有问题。什么会导致这个错误?谢谢你的帮助。

共有3个答案

宰父德馨
2023-03-14

试图通过在queryParams对象:

this.router.navigate(['yourRoute'], { queryParams: objectToPass});

这适合我。

穆城
2023-03-14

window.history。pushState字符串大小限制为640k个字符。

最好切换到本地存储会话存储。

来源:https://developer . Mozilla . org/en-US/docs/Web/API/History/pushState

洪念
2023-03-14

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

状态对象可以是任何可以序列化的东西。因为Firefox将状态对象保存到用户的磁盘上,以便在用户重新启动浏览器后可以恢复它们,所以我们对状态对象的序列化表示施加了640k字符的大小限制。如果将序列化表示形式大于此值的状态对象传递给pushState(),该方法将引发异常。如果您需要比这更多的空间,建议您使用会话存储和/或本地存储。

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

 类似资料:
  • 我正在使用“< code>fancy box”,并试图将我的url更改为< br > fancy box 的url,因此我尝试使用< code>History.pushState()。< br >但它会导致错误< br >错误: 我会搜索它,但没有找到答案,请帮助我 或为我提供更好的解决方案 (我发现:Javascript history.PushState不起作用?但从答案中我不明白我的代码有什

  • 我试图做我的第一个ReactApp,我得到了DataCloneError错误。 我有以下代码: 我想在单击按钮时触发方法showPost。 这是 showPost 方法: 我得到了这个错误DataCloneError:对“History”执行“pushState”失败:MouseEvent对象不能被克隆,我不知道如何修复它。 如果您能帮助我,我将不胜感激。

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 我正在研究使用HTML5历史记录API解决与AJAX加载的内容的深层链接问题,但我正在努力下手。有谁知道任何好的资源吗? 我想使用此方法,因为这似乎是允许发送那些链接可能未打开JS的可能性的好方法。当使用JS的人向不使用JS的人发送链接时,许

  • 是否有可能删除使用pushState创建的假历史记录? 我无法将状态存储在localStorage中,因为我的状态数组中有函数。

  • 可确认下载失败或无法与互联网连接时等,最新的10件错误历史记录。 轻触列表的错误项目,会显示详细内容。部分项目还可确认建议解决方法。

  • 主要内容:人工智能的成熟(1943-1952),人工智能的诞生(1952-1956),黄金岁月 - 早期的热情(1956-1974),第一个AI寒冬(1974-1980),AI的热潮(1980-1987),第二次AI寒冬(1987-1993),智能代理的出现(1993-2011),深度学习,大数据和人工智能(2011年至今),以下是纠正/补充内容:人工智能不是一个新词,也不是研究人员的新技术。这项技术比想象的要老很多。甚至在古希腊和埃及神话中也有机械人的神话。以下是AI历史上的一些里程碑,它定义