javascript - 如何将脚本标签插入到 div 中?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7266119/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
javascript - how to insert a script tag to div?
提问by Chameron
How to do that:
怎么做:
document.getElementById('target').innertHTML = "<script> alert(1); <script>";
<div id="target"></div>
script will be print on browser like a string.How to do is as script ?
脚本将像字符串一样在浏览器上打印。如何做脚本?
回答by Florian Margaine
I believe it is better to use pure DOM manipulation. Like this :
我相信最好使用纯 DOM 操作。像这样 :
var s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.value = 'alert(1)';
document.getElementById('target').appendChild(s);
回答by Jordan Running
Just don't escape your <
and >
s:
只是不要逃避你的<
和>
s:
document.getElementById('target').innertHTML = "<script> alert(1); <\/script>";
回答by JeFawk
You cannot use innerHTML for scripts anymore. It won't work and the console will not show any error. Instead you dynamically add scripts.
您不能再将 innerHTML 用于脚本。它不起作用,控制台不会显示任何错误。相反,您可以动态添加脚本。
This is for external scripts:
这是用于外部脚本:
var newScript = document.createElement("script");
newScript.src = "http://www.example.com/my-script.js";
target.appendChild(newScript);
And this is for inline scripts:
这是内联脚本:
var newScript = document.createElement("script");
var inlineScript = document.createTextNode("alert('Hello World!');");
newScript.appendChild(inlineScript);
target.appendChild(newScript);
Credit to Daniel Crabtree
归功于 Daniel Crabtree
回答by Chugworth
document.getElementById('target').innertHTML = '<script type="text/javascript"> alert(1); </script>';