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