脚本标签的src属性中的JS文件已下载但未执行(来自ajax调用)

时间:2011-12-22 15:58:52

标签: javascript ajax jquery

我正在调用来自jquery的ajax调用:

$.ajax({
  type: 'GET',
  url: 'edit.htm',
  success: function(data){
    container.html(data);
  },
});

从ajax调用中收到的数据包含引用其他JS文件的脚本标记,例如:angularjs。我看看firebug我看到JS文件已下载,但它们没有出现在Script选项卡中,可以调试它。

JS文件已下载但未执行。

我该如何解决这个问题?

上面的ajax调用和容器元素存在于名为info.htm的html文件中。

edit.htm(从ajax调用中获取的数据)包含脚本标记和其他html数据。

感谢。 P.S:如果有帮助:我可以在firebug“控制台”选项卡中看到正在下载的JS文件,但是,我无法在firebug“脚本”选项卡中看到它们。

3 个答案:

答案 0 :(得分:1)

尝试使用jQuery.getScript("url")了解更多详情,请参阅this 它隐含地进行了ajax调用。

或尝试类似:

$.ajax({
  type: 'GET',
  url: 'edit.htm',
  success: function(data){
    $(data).appendTo(container);
  },
});

答案 1 :(得分:0)

我曾经遇到过CSS的问题 - 它有不正确的Content-Type标题,并且没有被浏览器解释。这可能是问题吗?您的服务器是否为请求的脚本返回text/javascript

答案 2 :(得分:-3)

可能是您的要求有点奇怪,因为服务器不会返回客户端代码。

最佳做法是在开始时加载js文件,并且可以在完成ajax脚本后调用所需的方法。

然而,eval可能不是一个好习惯,但这是一个解决方案。 要执行变量中的javascript代码,您需要使用eval方法。

请查看此参考http://www.w3schools.com/jsref/jsref_eval.asp

希望这会有所帮助。