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

问题描述 投票:1回答:1

我正在使用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

为什么会这样?

javascript innerhtml domparser
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.