1

我有显示提要的 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 页面,但脚本没有执行(工作)。加载后如何让脚本工作?

4

2 回答 2

2

根据文档

脚本执行
当使用没有后缀选择器表达式的 URL 调用 .load() 时,内容会在脚本被删除之前传递给 .html()。这会在脚本块被丢弃之前执行它们。但是,如果调用 .load() 时将选择器表达式附加到 URL,则脚本会在 DOM 更新之前被剥离,因此不会执行。

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

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

如果 url 看起来不错,您可能会遇到跨端脚本问题。该文档还提到:

由于浏览器安全限制,大多数“Ajax”请求都受同源策略的约束;请求无法从不同的域、子域或协议成功检索数据。

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

于 2012-08-11T07:57:05.903 回答
1

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

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

$.getScript("/test.js")
于 2012-08-11T07:41:37.023 回答