javascript - 在 Javascript 文件中加载并执行 jQuery

标签 javascript jquery

我的问题类似于this one 。但我觉得答案不完整,问题的结尾也没有不确定性......

我正在开发一个 Javascript 应用程序,供我的用户放置在他们的网站上。我只希望他们必须将一个 javascript 包含在其网页顶部才能使用我的应用程序。

我的 JavaScript 需要 jQuery 才能运行。

所以我们的目标是......

  1. 检查 jQuery 是否已加载。
  2. 如果尚未加载 jQuery,则加载它。
  3. 执行需要 jQuery 才能运行的 javascript。

我想在同一个脚本中完成上述三件事。

这是我最初尝试过的...

function loa_j(){
 if (typeof jQuery === "undefined") {
 var newscript = document.createElement('script');
 newscript.type = 'text/javascript';
 newscript.async = true;
 newscript.src = 'http://code.jquery.com/jquery-latest.min.js';
 (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
 }
}

loa_j();
$(document).ready(function(){
//...Code That Never Fired
}

不起作用,因为 javascript 不会等待 jQuery 加载。它确实加载了 jQuery,只是不够快。

这是我的另一种解决方案,这个有效,但我挠头想知道这是否真的是最好的方法......

function loa_j(){
if (typeof jQuery === "undefined") {
(function(a,b){function G(a){var b=F[a]={.... //Entire jQuery copy and pasted in :D
}
}

因此,通过将整个 jQuery 复制并粘贴到该函数中,代码实际上可以工作。

这真的是最好的方法吗?

最佳答案

您可以将 onload 事件添加到动态加载的脚本中,如下所示:

function loa_j(){
 if (typeof jQuery === "undefined") {
     var newscript = document.createElement('script');
     newscript.type = 'text/javascript';
     newscript.async = true;
     newscript.src = 'http://code.jquery.com/jquery-latest.min.js';
     newscript.onload = jqReady;  //<-- executed only after jquery is loaded
     (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body'[0]).appendChild(newscript);
  }
}

function jqReady(){
    // your jquery code here 
}

loa_j();

关于javascript - 在 Javascript 文件中加载并执行 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577067/

相关文章:

javascript - 样式复选框和单选按钮

javascript - 使用 AngularJS 更新 CSS

javascript - 如何禁用所有 typescript 类型检查?

javascript - 如何在点击时切换类

javascript - 如何在运行时交换 jquery css

jQuery 数据表和标题复选框

jQuery.validate.js 和 asp.net 母版页

javascript - 两个数字之间的jquery除法

javascript - 如何在 javaScript 中添加 JavaScript 变量作为 CSS 值

javascript - 如何在 ipad 上获取动态插入视频的尺寸? JavaScript