javascript-如何向div插入脚本标记?
如何做到这一点:javascript-如何向div插入脚本标记?,javascript,Javascript,如何做到这一点: document.getElementById('target').innertHTML = "<script> alert(1); <script>"; <div id="target"></div> document.getElementById('target').innertHTML=“脚本警报(1);脚本”; 脚本将像字符串一样在浏览器上打印。如何做是作为脚本?只是不要逃避您的s: d
document.getElementById('target').innertHTML = "<script> alert(1); <script>";
<div id="target"></div>
document.getElementById('target').innertHTML=“脚本警报(1);脚本”;
脚本将像字符串一样在浏览器上打印。如何做是作为脚本?只是不要逃避您的
s:
document.getElementById('target').innertHTML = "<script> alert(1); <\/script>";
document.getElementById('target').innertHTML=“警报(1);”;
我认为最好使用纯DOM操作。像这样:
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.value = 'alert(1)';
document.getElementById('target').appendChild(s);
document.getElementById('target')。innertHTML='alert(1);';
您不能再将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
你可能想使用<代码> <代码>,所以代码中的脚本
标签不会在字符串文字的中间被关闭。不要用脚本标记来写它,我已经使用了CealEngEnter。谢谢你回答我的问题。我投你的票。这不会执行/评估注入的脚本。
var newScript = document.createElement("script");
var inlineScript = document.createTextNode("alert('Hello World!');");
newScript.appendChild(inlineScript);
target.appendChild(newScript);