在Javascript文件中加载和执行jQuery
我的问题类似于。但我觉得答案不完整,问题以一种不确定的方式结束 我正在开发一个Javascript应用程序,供我的用户在他们的网站上使用。我只希望他们必须把一个javascript包含在他们的网页顶部,以便使用我的应用程序 我的javascript需要jQuery才能运行 所以我们的目标是在Javascript文件中加载和执行jQuery,javascript,jquery,Javascript,Jquery,我的问题类似于。但我觉得答案不完整,问题以一种不确定的方式结束 我正在开发一个Javascript应用程序,供我的用户在他们的网站上使用。我只希望他们必须把一个javascript包含在他们的网页顶部,以便使用我的应用程序 我的javascript需要jQuery才能运行 所以我们的目标是 检查jQuery是否已加载 如果尚未加载jQuery,请加载它 执行需要jQuery运行的javascript 我想在同一个脚本中完成以上三个步骤 这是我最初尝试的 function loa_j(){ if
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复制并粘贴到该函数中,代码实际上可以工作
这真的是最好的方法吗?像这样编辑
$(document).ready(function(){
loa_j();
//...Code That Never Fired
}
像这样编辑
$(document).ready(function(){
loa_j();
//...Code That Never Fired
}
在本例中,您必须使用计时器检查库是否存在,然后执行代码。看这把小提琴:
在本例中,您必须使用计时器检查库是否存在,然后执行代码。看这把小提琴:
您可以尝试这样做,它基本上会等待jquery加载,然后执行函数。如果可以的话,静态加载Jquery也是一个好主意,因为您似乎确实依赖$(document).ready函数。但是如果这不可能,你可以试试这个,或者任何其他加载程序,比如yepnope.js或者我最喜欢的requirejs
您可以试试这个,它基本上是等待jquery加载,然后执行函数。如果可以的话,静态加载Jquery也是一个好主意,因为您似乎确实依赖$(document).ready函数。但是如果这不可能,你可以试试这个,或者任何其他加载程序,比如yepnope.js或者我最喜欢的requirejs
您可以将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();
函数loa_j(){
if(jQuery的类型==“未定义”){
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;//您可以按如下方式将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();
函数loa_j(){
if(jQuery的类型==“未定义”){
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;//已经在尝试
?不太清楚您的意思…我希望我的用户不必编辑太多html:)事件onload
在html中使用作为指示符,显示完全加载的页面(带有样式、外部脚本、图像)。onload=“loa_j()
表示加载页面后需要运行什么脚本loa_j()
。已经在尝试
?不太清楚您的意思…我希望我的用户不必编辑太多html:)事件在html中使用作为指示符,以显示已完全加载的页面(使用样式、外部脚本、图像)。onload=“loa_j()
表示加载页面后需要运行什么脚本。我会尝试……但我认为这不管用?我相信$(文档)。就绪取决于jQuery(这就是为什么在我的第一段代码中它不起作用的原因)。只要检查一下,朋友,我想它会工作的,因为函数调用应该在“ready()”尝试之后完成…不起作用。loa_j()是加载jQuery的东西。我不能在执行之前使用任何jQuery。但我认为在加载jQuery之后,它可以检查对吗?我会尝试…但我认为这不会起作用?我相信$(document).ready依赖于jQuery(这就是为什么在我的第一个代码段中它不起作用的原因)。朋友,只要检查一下它,我认为它会起作用,因为函数调用应该在“ready()”尝试它之后完成……不起作用。loa_j()是加载jQuery的东西。在执行jQuery之前,我不能使用任何jQuery。但是我认为在加载jQuery之后,它就可以检查了,对吗。。?