我正在尝试通过jQuery加载在页面上“包含”一些生成的HTML代码(将其注入#loadhead div):
<脚本延迟>
...其余代码
我希望仅在head.php完成加载后才加载脚本的第二部分。我试图用defer强制执行第二个脚本标签,但是它似乎无法正常工作-有时,head.php仍然无法在其余代码之前加载。我该怎么做才能确保始终完全加载?它会生成一些由“延迟”脚本使用的JavaScript值。
答案 0 :(得分:2)
为您提供两个选择:
load
的回调函数中调用的函数将第二个脚本的代码放入一个函数中,以便它被加载而不是 run 加载,然后从load
的成功回调中调用该函数。 / p>
示例:
<script>
$("#loadhead").load("head.php", otherStuff);
function otherStuff() {
// ...
}
</script>
(我没有看到任何理由将它们放在单独的script
标签中,所以没有。)
我可能会将所有内容都放在.js
文件中并进行链接,而不是将脚本嵌入到HTML内联中。
load
后加载脚本根本不包含第二个script
标签;稍后使用load
或附加一个$.getScript
元素,在script
成功回调中加载脚本。
示例:
<script>
$("#loadhead").load("head.php", function() {
$.getScript("otherstuff.js");
});
</script>
(我没有看到任何理由将它们放在单独的script
标签中,所以没有。)
为了避免不必要的延迟,我非常愿意选择选项1。