Carregar jQuery, espere
-
19-09-2019 - |
Pergunta
Eu preciso carregar dinamicamente jQuery e jQuery UI de um javascript, em seguida, verificar se ele foi carregado e fazer algo mais tarde.
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref);
}
loadjscssfile("http://localhost/js/jquery-1.3.2.min.js", "js");
loadjscssfile("http://localhost/js/jquery-ui-1.7.2.custom.min.js", "js");
Eu tenho feito algumas pesquisas e descobriram que eu preciso tanto para uso uma chamada de retorno ou um setTimeout. O problema é que eu sou realmente novo em javascript e é realmente me dando um tempo difícil. Alguém pode me definir na direção certa, por favor?
Solução
Eu nunca tive que fazer isso sozinho, mas provavelmente você pode simplesmente usar um tempo limite de repetição para verificar a presença dos objetos necessários:
function jqueryLoaded() {
//do stuff
}
function checkJquery() {
if (window.jQuery && jQuery.ui) {
jqueryLoaded();
} else {
window.setTimeout(checkJquery, 100);
}
}
checkJquery();
Outras dicas
Eu tenho certeza que a window.onload () função deve desencadear quando todos os scripts são carregados. E você não precisa de material de ligação para o evento 'ready
' em jQuery.
loadjscssfile("http://localhost/js/jquery-1.3.2.min.js", "js");
loadjscssfile("http://localhost/js/jquery-ui-1.7.2.custom.min.js", "js");
window.onload = function() {
if(window.jQuery && jQuery.ui) {
alert('loaded');
}
}