gpt4 book ai didi

javascript - FireFox 中的 HTML/iframe 错误 - 组件返回失败代码 : 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory. PushState]

转载 作者:行者123 更新时间:2023-11-28 09:06:53 29 4
gpt4 key购买 nike

我正在创建一个基于 java (JSF) 服务器的小型 JavaScript 模拟。 bootstrap javascript 文件将使用 AJAX 下载并解析一堆文件,然后生成一个大的 HTML 字符串。该 HTML 字符串是一个完整的 HTML 文档 - 它具有文档类型、头部、脚本包含、内联脚本、正文等。

我不想使用真正的 JSF 后端的原因是因为我希望能够有一个纯 UI 环境来测试我的代码,而没有任何 java/oracle 服务器减慢我的速度。

我想与任何人共享我的代码(例如在 .zip 文件中),他们应该能够在没有安装某些服务器的任何浏览器中打开页面(在进行 AJAX 调用时有一个小的加载屏幕)在他们的机器上。

这个问题的答案引导我探索更多 - 现在我遇到了不同的错误,但我似乎无法解释它。

Fiddle #1 :此尝试使用 iframe 的 document.write 将 HTML 放入 iframe 中。在此 HTML 中,有一个脚本推送新的历史状态 history.pushState(null, null, hash)

Fiddle #2 :这个尝试将 HTML 放入 iframe 中,但这次它只使用 location.hash = hash

这两个 fiddle 似乎在 Chrome、Safari 和 IE 9 中都能正常工作 - 但 Firefox 会出现以下错误:

NS_ERROR_FAILURE:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.pushState]

我不明白这个错误 - 如果您使用 FireBug 中的 javascript 控制台在 Firefox 中的任何页面上执行相同的代码 history.pushState(null,null,"#test") 它会起作用很好 - 但在这种特殊情况下它不起作用。

我还尝试执行document.open();文档.write(html); document.close() 在当前页面的文档上(而不是创建 iframe),但发生了同样的问题 - 只是这一次,如果我将 firebug 中的断点放入插入 HTML 片段的 javascript 代码中,断点不起作用,这意味着我无法再在 Firefox 中调试任何内容。至少对于 iframe 方法来说,断点是有效的。

有人能解释一下这个问题吗?

这是我昨天问的另一个相关问题,导致发现此错误:Firefox Fail - After using document.write and update to location.hash causes page refresh

最佳答案

您可以输入此代码

history.pushState(null,null,"#test") 

之前

document.open(); 
document.write(html);
document.close();

关于javascript - FireFox 中的 HTML/iframe 错误 - 组件返回失败代码 : 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory. PushState],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926788/

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