延迟加载javascript直到jQuery已正确加载

时间:2011-07-11 19:18:14

标签: javascript jquery html

我正在尝试编写一个bookmarklet,其中涉及动态添加两个脚本标记,一个用于jQuery,另一个用于用jQuery编写的js脚本。我遇到的问题是,即使我首先添加jQuery脚本,也无法读取js脚本,因为浏览器说jQuery未定义。我知道错误是jQuery仍在加载,因为浏览器添加了我的js脚本,因此浏览器在执行js脚本时无法识别js脚本中的jQuery。是否有延迟添加js脚本标记,直到jQuery完全加载?

谢谢!

3 个答案:

答案 0 :(得分:2)

您的脚本如何?

您应该将您在脚本中执行的所有操作封装在函数中,然后从文档中调用该函数。

例如,将所有内容放入函数myJqueryFunction()中,然后使用:

调用它
$(document).ready(function(){
    myJqueryFunction();
});

这使得您的代码只能在jQuery完全加载后执行。

或者,您应该能够使用Ajax执行脚本,但请记住,您的脚本必须从与文档相同的域提供,否则它将无法访问DOM。

$(document).ready(function(){
    $.ajax("url to your script", {dataType:"script"});
});

答案 1 :(得分:1)

  

大多数Javascript程序员最终做的第一件事就是在他们的>程序中添加一些代码,类似于:

     

window.onload = function(){ alert("welcome"); }

     

其中包含您希望在加载页面时运行的代码。但问题是,在完成所有图像下载(包括横幅广告)之前,Javascript代码不会运行。首先使用window.onload的原因是当你第一次尝试运行你的代码时,HTML'文档'还没有完成加载。

希望这些信息有助于 - 从JQuery tutorial推出!

答案 2 :(得分:0)

您可以使用LABjs之类的脚本加载器:http://labjs.com/。它支持使用wait延迟其他脚本。

$LAB
.script("jquery.js")
.wait()
.script("script.js");