我想重写在index.php主页中加载的脚本(syntaxhighlighter,processingjs)。
我还想在.load()请求的另一端执行脚本......这似乎不太可能,因为这些页面请求也会命中.text(),据我所知,它会删除脚本。这种事情总是依赖于脚本本身还是有些我不了解页面编译的东西?
重申一下,我正在寻找一种方法来重写已经加载的脚本,但不再影响加载ajax的内容。
答案 0 :(得分:1)
确保触发脚本的唯一方法是重新加载页面。
您并不误解任何有关页面编译的信息。当浏览器呈现html时,它会遇到<script>
个标签。它们按照遇到它们的顺序执行。
正如您自己所说,可以使用javascript删除脚本块。虽然这是非常不寻常的,但我之前只听过几次(并且调用jQuery.fn.text()
肯定不会这样做),仅此一点就无法可靠地重新执行所有事情< / em>的
话虽如此,因为我们通常不希望代码在浏览器完成将所有元素加载到页面之前执行,因此仅响应文档的onload事件运行所有代码是一种常见模式。这就是您在设置$(document).ready(function(){...})
或$(function(){...})
时所执行的代码(两者都相同)。由于该代码始终在响应文档加载的事件时运行,因此您始终可以使用$(document).ready()
或$(document).trigger('ready')
但是,要彻底测试这一点,因为许多库都认为事件只发生一次。
答案 1 :(得分:0)
大多数库都会附带一个在页面内容上“运行”它们的功能。您只需要编写对这些的调用,将它们置于某种“初始化”函数中,并在需要时调用它。
答案 2 :(得分:0)
您可以修改已加载的脚本,以便可以从函数中调用它们。然后,当您要运行脚本的内容时,可以调用此函数。
如果你不知道如何修改脚本,可以使用FireBox for FireFox这样的开发人员工具,以便在运行时检查脚本。