我需要使用appendChild()
或者jQuery的append()
将一些<script>
标签的东西附加到文档中。据我所知,这些内容会被剥离掉。有人知道如何做吗?
我需要使用appendChild()
或者jQuery的append()
将一些<script>
标签的东西附加到文档中。据我所知,这些内容会被剥离掉。有人知道如何做吗?
// Create the element
var script = document.createElement("script");
// Add script content
script.innerHTML = "...";
// Append
document.head.appendChild(script);
或者
document.body.appendChild(script);
试试这个:
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://somedomain.com/somescript";
$("head").append(s);
请注意,脚本将被加载并且您可以在其中访问变量,但是您在DOM中不会看到实际的<script>
标签。
s.type
,越“短”越好。 - Timo$('<script>alert("hi");</' + 'script>').appendTo(document.body);
$('<script></script>')
的唯一原因是因为字符串 </script>
在JavaScript中不被允许,因为DOM层无法解析哪些是JavaScript代码,哪些是HTML代码。你甚至可以使用 $('<script><\/script>')
来避免这个限制。 - qwertymk如果您需要添加一个脚本以便对其进行解析,您可以像Google为其+1按钮所做的那样。
(function() {
var po = document.createElement('script');
po.type = 'text/javascript';
po.async = true;
po.src = 'link to your script here';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
head
body
- Chef_Code<!DOCTYPE html><title>Hello, World!</title>
- 这是有效的HTML),那么这段代码将会崩溃(s未定义)。 - tanguy_k这对我起作用了。
<script>
$('head').append("<script>your script content here<\/script>");
</script>
请注意,内部 </script>
的 "/" 已被转义为 "<\/script>"
。如果没有进行转义,则会实际关闭外部的 <script>
标签。
添加的脚本不会显示但会被执行。
希望这能有所帮助。$('your_document_selector').text('<script></script>')
.text()
可以使得追加的脚本标签被呈现为 HTML。
OR
$('your_document_selector').append('<script></script>')
<script></script>
替换为<script><\/script>
即可。 - Black