如何做到这一点:
document.getElementById('target').innertHTML = "<script> alert(1); <script>";
<div id="target"></div>
脚本将像浏览器一样在浏览器上打印。如何做脚本?
答案 0 :(得分:7)
我认为使用纯DOM操作会更好。像这样:
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.value = 'alert(1)';
document.getElementById('target').appendChild(s);
答案 1 :(得分:5)
请勿逃避<
和>
:
document.getElementById('target').innertHTML = "<script> alert(1); <\/script>";
答案 2 :(得分:0)
您不能再将innerHTML用于脚本。它无法正常工作,控制台也不会显示任何错误。相反,您可以动态添加脚本。
这是用于外部脚本的
var newScript = document.createElement("script");
newScript.src = "http://www.example.com/my-script.js";
target.appendChild(newScript);
这是用于内联脚本的
var newScript = document.createElement("script");
var inlineScript = document.createTextNode("alert('Hello World!');");
newScript.appendChild(inlineScript);
target.appendChild(newScript);
Daniel Crabtree的信用
答案 3 :(得分:-1)
document.getElementById('target').innertHTML = '<script type="text/javascript"> alert(1); </script>';