【发布时间】:2018-10-12 12:08:32
【问题描述】:
当我使用document.createElement 创建脚本元素并将其附加到document.head 时,JavaScript 成功执行:
var el = document.createElement('script');
el.text = "console.log('Hello World!')";
document.head.insertAdjacentElement('afterbegin', el);
// console output: "Hello World!"
但如果我使用 DOMParser 解析一个 html 字符串,然后将其 firstElementChild 附加到 document.head,则 JavaScript 不会执行:
var parser = new DOMParser();
var htmlString = "<script>console.log('Bye World!')<\/script>";
var domEl = parser.parseFromString(htmlString, "text/xml").firstElementChild;
document.head.insertAdjacentElement('afterbegin', domEl);
// No console output
在这两种情况下,document.head 都会添加一个 <script> 标记。为什么 JavaScript 在第二种情况下不执行?
【问题讨论】:
标签: javascript dom