我正在使用jQuery 1.4,我正在尝试附加包含来自其他域的javascript文件的DIV。在加载jQuery后,我在主体末尾有以下内联代码:
<script src="jquery-1.4.3.min.js"></script>
<script src="scripts.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
var html = "<div><script type='text/javascript' src='http://example.com/foo'></script></div>";
$("#container").append(html);´
});
</script>
问题是输出是:
“; $(”#container“)。append(html);}});
它甚至没有显示在#container中,而是显示在javascript代码所在的正文的底部。
编辑:javascript文件为广告插入html,因此无法将其加载到文档头中。
答案 0 :(得分:3)
使用您描述的方法无法加载动态脚本,因为字符串是作为HTML加载的,而不是解析的。试试这个:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://example.com/foo';
head.appendChild(script);
答案 1 :(得分:0)
浏览器正在解释类型为“text / javascript”的脚本标记,而不会显示。没有合理的理由将脚本标记放入div中,希望它能显示其内容。
如果您希望从其他域加载脚本,只需将它们附加到正文中,而不将其包装在其他标记中。加载并运行这些文件后,可能会在其中添加一些代码,这些代码会向 div#container 元素添加一些内容(注意:我说可能)。
你需要首先获得DOM和脚本的概念,然后再问一遍。我很乐意帮助你。
此致 aefxx