这就是我的......
a= document.createElement('div');
a.innerHTML="<script>alert(1)</script>";
document.body.appendChild(a);
alert(1)
没有被执行。
@rocket @ m90我知道,但我不能使用那种方法,因为我有很多其他标签。基本上,我从ajax获取一个网页,剥离头标签,并将其嵌入到文档中。现在ajax数据也有一些我想要执行的脚本标签......
答案 0 :(得分:2)
您还需要创建脚本元素:
var a = document.createElement('div'),
b = document.createElement('script');
b.textContent = 'alert(1)';
a.appendChild(b);
document.body.appendChild(a);
答案 1 :(得分:2)
您不应在<script>
内使用.innerHTML
标记。相反,您可以创建一个新的script
元素,并按照以下方式执行:
a = document.createElement('script');
a.textContent = "alert('1');" ;
document.body.appendChild(a);
答案 2 :(得分:1)
只要脚本中有"</script>"
,JavaScript解释器就会将此视为脚本块的结尾。即使引用它。
使用:a.innerHTML="<script>alert(1)</sc" + "ript>";