gpt4 book ai didi

javascript - 如何防止从 outerHTML/innerHTML 中删除双引号?

转载 作者:行者123 更新时间:2023-11-28 00:01:22 27 4
gpt4 key购买 nike

我正在使用的遗留页面中有一些 Javascript 可以读取页面的整个 HTML,以便可以将其保存到文件中:

html = document.documentElement.outerHTML;

然而,这个和 innerHTML 替代方案都去掉了一些属性值周围的双引号,导致我无法将其用于以后的处理。

例如

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

成为

<META content="text/html; charset=utf-8" http-equiv=Content-Type>

当我“查看源代码”时,引号是正确的,那么如何使用 Javascript 获取正确的 HTML?我的开发环境是 Visual Studio 2013 和 Internet Explorer 10(在怪癖模式下)以防相关。

说明:后续处理的第一步是将 HTML 加载到 XMLDocument 中。问题是由于缺少双引号而失败。

最佳答案

大多数浏览器不这样做,根据 HTML5 CR,所有属性值在序列化时都出现在双引号中,即使在 HTML 序列化中也是如此。但是 IE 8 和更早版本使用部分不同的序列化。根据 HTML 规则,结果仍然是正确的,尽管不是 XHTML 规则(但 IE 8 和更早版本不支持 XHTML——它们消化 XHTML,但这只是因为它们的标签汤解析器是允许的)。

您可以考虑使用将 HTML 转换为 XHTML 的后处理器。或者您可以编写自己的函数,相当于在现代浏览器中获取 outerHTML。序列化在 HTML5 中有详细定义,因此这将相对简单。

关于javascript - 如何防止从 outerHTML/innerHTML 中删除双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184041/

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