【发布时间】:2021-07-22 03:28:48
【问题描述】:
我正在尝试将 HTML 字符串解析为 DOM:
str = '<script src="demo_defer.js" defer></script>';
dom = new DOMParser().parseFromString(str, 'text/html');
console.log(dom.body.innerHTML);
输出这个:
<script src="demo_defer.js" defer=""></script>
同理,字符串如下:
<IfModule mod_security2.c>
#SecRuleEngine Off
</IfModule>
固定为:
<ifmodule mod_security2.c="">
#SecRuleEngine Off
</ifmodule>
如何阻止 DOMParser 修复 HTML? 如何保留原始属性,没有默认的空值?
【问题讨论】:
-
怀疑你能否解决这个问题。
-
大约 20 到 25 年前曾经有一种方法可以读回 HTML 流...... - 不记得如何了。对不起。但现在,最好的办法是一开始就不解析流。
-
前提错了,DOMParser 生成的不是字符串,而是文档树。无论您用来序列化生成的 DOM 节点是否添加了这些
="",对于 DOM,无论是否在这里,它们都是相同的。 -
@epascarello :) 可能是正则表达式 :)
-
还有……这有什么变化? DOMParser 不是罪魁祸首,只是你不应该将你的字符串解析为 DOM 来做你想做的事。所以问问你真正想做的是什么:你遇到了 X-Y 问题
标签: javascript html dom code-snippets domparser