如何在没有 jQuery 的情况下将原始 JavaScript 标签附加到 document.body
How to append a raw JavaScript tag to document.body without jQuery
我从服务器得到一个原始的 JavaScript 标签:
"<script>alert('hi');</script>"
现在,我需要将它附加到 <body>
以便它触发。我不能简单地创建一个新的脚本元素,因为这个字符串已经包含 <script>
部分。有没有类似于
的东西
child = document.createElementFromHTML("<script>alert('hi');</script>");
document.body.appendChild(child)
感谢您的帮助。
编辑
这就是为什么它不是重复的,大厅监视器:
如果您将 div 的内部 html 设置为脚本,它不会触发。我需要将仅由文本生成的元素附加到正文。
编辑 2
最终解决方案:
window.onload = function() {
document.body.innerHTML += "<script>alert('hi');</script>";
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
}
通过这种方式,您可以在 HTML
中插入 <script>
标签
var script = document.body.appendChild(document.createElement('script'));
script.text = 'alert("Hi!");'
您可以将 document.body.innerHTML
与 <script>
html 字符串连接起来,获取 document
中最后一个 script
的 .textContent
,创建 script
元素,将 script
元素 .textContent
设置为从连接的 html
<script>
字符串中检索到的值,删除最后一个 <script>
,将新的 <script>
附加到 document.body
.
<script>
document.body.innerHTML += "<script>alert('hi');<\/script>");
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
</script>
我从服务器得到一个原始的 JavaScript 标签:
"<script>alert('hi');</script>"
现在,我需要将它附加到 <body>
以便它触发。我不能简单地创建一个新的脚本元素,因为这个字符串已经包含 <script>
部分。有没有类似于
child = document.createElementFromHTML("<script>alert('hi');</script>");
document.body.appendChild(child)
感谢您的帮助。
编辑
这就是为什么它不是重复的,大厅监视器:
如果您将 div 的内部 html 设置为脚本,它不会触发。我需要将仅由文本生成的元素附加到正文。
编辑 2
最终解决方案:
window.onload = function() {
document.body.innerHTML += "<script>alert('hi');</script>";
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
}
通过这种方式,您可以在 HTML
中插入<script>
标签
var script = document.body.appendChild(document.createElement('script'));
script.text = 'alert("Hi!");'
您可以将 document.body.innerHTML
与 <script>
html 字符串连接起来,获取 document
中最后一个 script
的 .textContent
,创建 script
元素,将 script
元素 .textContent
设置为从连接的 html
<script>
字符串中检索到的值,删除最后一个 <script>
,将新的 <script>
附加到 document.body
.
<script>
document.body.innerHTML += "<script>alert('hi');<\/script>");
var script = document.scripts[document.scripts.length - 1];
var s = document.createElement("script");
s.textContent = script.textContent;
document.body.removeChild(script);
document.body.appendChild(s);
</script>