如果 DOMParser innerHTML 是脚本,则不显示第一个元素
DOMParse innerHTML does not show first element if it is a script
我正在使用 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>
,如果您打开一个仅包含 [=26] 的文档,您会在 DOM 中找到脚本=] 在浏览器中。
var doc = new DOMParser().parseFromString('<script>var x;<\/script>', 'text/html');
console.log(doc.head.innerHTML);
(在出现 <head>
之前,任何可以进入 <head>
的东西都可以。Relevant part of the spec)
我正在使用 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>
,如果您打开一个仅包含 [=26] 的文档,您会在 DOM 中找到脚本=] 在浏览器中。
var doc = new DOMParser().parseFromString('<script>var x;<\/script>', 'text/html');
console.log(doc.head.innerHTML);
(在出现 <head>
之前,任何可以进入 <head>
的东西都可以。Relevant part of the spec)