如何使用 JavaScript DOMParser 禁用脚本标签中的解析代码?
How to disable parsing code in script tags using JavaScript DOMParser?
我有以下带有 JavaScript 标签的文本文件:
<script>
...
</script>
<script>
...
</script>
<script>
...
</script>
当我这样解析它时:
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(`<root>${data}</root>`, "text/xml");
const tags = xmlDoc.getElementsByTagName("script");
我报错是因为JS程序代码中有<和>符号,比如
for (let i = 0; i < tags.length; i++) {
我不想将 < > 替换为 < >因为它们也存在于代码中的字符串中。
是否可以禁用脚本标签内的解析代码?
为了解析HTML,我们使用mime类型text/html
const htmlDoc = parser.parseFromString(data, "text/html");
const tags = htmlDoc.getElementsByTagName("script");
尝试将 JS 代码封装在 CDATA section
所以它看起来像:
<script>
<![CDATA[
for (let i = 0; i < tags.length; i++) {....
]]>
</script>
这些注释告诉 xml 解析器只将其中的内容视为字符数据
我有以下带有 JavaScript 标签的文本文件:
<script>
...
</script>
<script>
...
</script>
<script>
...
</script>
当我这样解析它时:
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(`<root>${data}</root>`, "text/xml");
const tags = xmlDoc.getElementsByTagName("script");
我报错是因为JS程序代码中有<和>符号,比如
for (let i = 0; i < tags.length; i++) {
我不想将 < > 替换为 < >因为它们也存在于代码中的字符串中。
是否可以禁用脚本标签内的解析代码?
为了解析HTML,我们使用mime类型text/html
const htmlDoc = parser.parseFromString(data, "text/html");
const tags = htmlDoc.getElementsByTagName("script");
尝试将 JS 代码封装在 CDATA section 所以它看起来像:
<script>
<![CDATA[
for (let i = 0; i < tags.length; i++) {....
]]>
</script>
这些注释告诉 xml 解析器只将其中的内容视为字符数据