javascript - 如果 DOMParser innerHTML 是脚本,则不显示第一个元素

标签 javascript innerhtml domparser

我正在使用 DOMParser 来解析一些内容,对其进行一些更改并将其转换回 HTML。令人惊讶的是,如果第一个元素是脚本标记,innerHTML 不会显示它。所以,像

var x = new DOMParser().parseFromString('<script>var x;</script>', 'text/html').body.innerHTML

导致 x 为空字符串。

在此处查看更详细的示例: https://jsbin.com/jotukabace/edit?html,js,output

为什么会这样?

最佳答案

它进入了 <head> , 而不是 <body> ,如果您在浏览器中打开仅包含该 HTML 的文档,那么您将在 DOM 中找到该脚本。

var doc = new DOMParser().parseFromString('<script>var x;<\/script>', 'text/html');
console.log(doc.head.innerHTML);

(在 <head> 出现之前,任何可以进入 <head> 的东西都会进入。Relevant part of the spec )

关于javascript - 如果 DOMParser innerHTML 是脚本,则不显示第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103871/

相关文章:

javascript - CheckBox 在使用 Flatlist 渲染的 ListItem 中不起作用

javascript - Polymer 1.x 铁 localstorage 奇怪的效果

javascript - 如何使用 JQuery 检查单选按钮是否被选中?

angular - DOMParser Typescript- 解析 HTML

Javascript:XMLDocument 迭代

javascript - 动态生成的选择/选项在 IE 中为空但在其他浏览器中正常

javascript - 如何使用 innerHTML 输出反向字符串?

javascript - CSS/JavaScript : get user-visible text of an element

javascript - 关于内容传递的想法。需要帮助

java - 如何在Dom解析器中修改XML数据