我的问题与此类似。但我觉得那里的答案不完整,问题以不确定性结束......
我正在为我的用户开发一个 Javascript 应用程序以放在他们的网站上。我只希望他们必须将一个 javascript 包含在他们的网页顶部才能使用我的应用程序。
我的 javascript 需要 jQuery 才能运行。
所以目标是...
- 检查 jQuery 是否已经加载。
- 如果尚未加载,则加载 jQuery。
- 执行需要 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 复制并粘贴到该函数中,代码确实可以工作。
这真的是最好的方法吗?