0

我想重新启动在我的 index.php 主页中加载的脚本(syntaxhighlighter、processingjs)。

我还想在 .load() 请求的另一端执行脚本...这似乎不太可能,因为这些页面请求也命中 .text(),据我了解,它会删除脚本。这种事情总是依赖于脚本本身,还是我对页面编译不了解?

重申一下,我正在寻找一种方法来重新启动已经加载但不再影响 ajax 加载内容的脚本。

4

3 回答 3

1

确定触发脚本的唯一方法是重新加载页面。

您对页面编译没有任何误解。当浏览器呈现 html 时,它会遇到<script>标签。这些它按照遇到它们的顺序执行。

正如您自己所说,可以使用 javascript 删除脚本块。虽然这对我来说非常不寻常,但我之前只听说过几次(并且调用jQuery.fn.text()肯定不会这样做),但仅此一项就不可能可靠地重新执行所有内容

话虽如此,因为我们通常不希望在浏览器完成将所有元素加载到页面之前执行代码,因此仅在响应文档的 onload 事件时运行所有代码是一种常见的模式。这就是您的代码在设置$(document).ready(function(){...})$(function(){...})(它们都是相同的)时正在执行的操作。由于该代码始终响应文档的加载事件而运行,因此您始终可以使用$(document).ready()或重新触发它$(document).trigger('ready')

但是,请彻底测试这一点,因为许多库都假设该事件只发生一次。

于 2012-04-17T15:16:17.810 回答
0

大多数库都会附带一个在页面内容上“运行”它们的功能。您只需编写对它们的调用,将它们放入某种“初始化”函数中,并在需要时调用它。

于 2012-04-17T15:08:44.573 回答
0

您可以修改加载的脚本,以便可以从函数中调用它们。然后,当您要运行脚本的内容时调用此函数。

如果您不知道如何修改脚本,请获取一些开发人员工具,例如 FireBug for FireFox,以便您可以在脚本运行时对其进行检查。

于 2012-04-17T15:19:19.693 回答