通过AJAX加载脚本标记

时间:2009-11-25 23:11:18

标签: javascript html ajax scripting

我有一个div标签,它通过ajax调用填充脚本,但脚本不会执行。

有没有办法让脚本执行?

4 个答案:

答案 0 :(得分:10)

如果您使用jQuery的.html方法,它会解析脚本标记并将其删除:

$("div").html('<script type="text/javascript">alert("This should work")</script>');

如果jQuery不是一个选项,您可以使用(1)正则表达式自己编写,或者(2)解析DOM树并查找脚本标记。 (#2是jQuery如何做到的)

答案 1 :(得分:3)

将内容与代码分开始终是个好主意。通过插入<script>标记,通过AJAX和代码加载内容。如果您使用的是jQuery,请使用$.getScript()动态加载脚本。

答案 2 :(得分:2)

我想,你正在将脚本标签直接写入innerHTML

这不起作用。

document.body.innerHTML+="<script>alert(1)</scr"+"ipt>"; 

你必须使用像这样的DOM函数编写

var tag = document.createElement("script");
tag.innerHTML="alert(1)";
document.body.appendChild(tag); //can be append to any object other than body

或更好地使用jQuery

答案 3 :(得分:0)

如果设置div的innerHtml,则应执行脚本标记。我使用$(“#divid”)。load()来加载动态内容,脚本标签执行。

如果使用简单的javascript无法解决问题,请尝试使用JQuery。