如何加载脚本文件并执行它?

时间:2012-08-11 07:32:19

标签: javascript jquery html

我有显示Feed的feedburner脚本,它看起来像这样:

<script src="http://feeds.feedburner.com/cnn/HIkg?format=sigpro" type="text/javascript" ></script>

我想加载这个在不同的html页面上的脚本,所以基本上我正在使用以下脚本加载html文件:

$('#' + items[i]).load('content/' + items[i] + '.html');

这段代码确实加载了html页面,但脚本没有执行(工作)。如何加载脚本后才能使脚本运行?

2 个答案:

答案 0 :(得分:2)

根据documentation

  

脚本执行
  使用不带后缀的URL调用.load()时   选择器表达式,内容在脚本之前传递给.html()   被删除。这将执行脚本块之前   丢弃。如果调用.load()并附加了一个选择器表达式   但是,在DOM之前,脚本会被删除   更新,因此不执行。

如果你的url只是一个没有指定选择器的普通url,那么脚本在删除之前应该执行。

检查items[i]的值并检查它是否是没有选择器的普通网址。

如果网址看起来很好,您可能会遇到跨端脚本问题。文档还提到:

  

由于浏览器安全限制,大多数“Ajax”请求都是主题   到same origin policy;请求无法成功检索   来自不同域,子域或协议的数据。

如果可能的话,我仍然会建议将任何脚本放在外部文件中,因为这是一种很好的做法并且不会使html混乱。然后,您可以按照 Raminson 的建议使用.getScript()

答案 1 :(得分:1)

您可以使用$.getScript()实用程序功能:

  

使用GET HTTP请求从服务器加载JavaScript文件,然后执行它。

$.getScript("/test.js")