我可以使用insertAdjacentHTML执行嵌入式javascript吗?
在浏览器控制台中有效的内容:
$('body').append('<script>alert(1)</script>')
我需要在浏览器控制台中进行的工作:
document.body.insertAdjacentHTML('beforeend', '<script>alert(1)</script>');
VanillaJS解决方案不起作用。我会为一个原因感到高兴
答案 0 :(得分:1)
使用insertAdjacentHTML
,尽管脚本标签已添加到页面,但不会对其进行解析或执行。
要使脚本实际运行,您需要使用createElement
:
var script = document.createElement('script');
script.innerText = "console.log('Hello!');";
document.body.append(script);
答案 1 :(得分:0)
var script = document.createElement('script'); // create a new script element
script.innerText = "alert('Hello!');"; // InnerText property html-encodes the content,
document.body.append(script); //append innterText to script