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?

Foi útil?

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');
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top