如果是脚本,DOMParse innerHTML不会显示第一个元素

时间:2018-03-05 05:15:59

标签: 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

为什么会这样?

1 个答案:

答案 0 :(得分:1)

它进入<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