Carregar jQuery apenas se não estiver presente
Testa se o jQuery já foi carregado na página, se não, carregar para usar a biblioteca
Imagine você fazendo uma aplicação com jQuery e não sabe se a biblioteca foi carregada na página. Forçar o carregamento da mesma versão do jQuery pode fazer com que cause erros além de tornar a página mais pesada; e se for uma versão diferente causar conflitos.
A solução é simples, verificar se o jQuery foi carregado, se não foi carregado, então carregamos a biblioteca para que o script funcione perfeitamente.
Forma assíncrona inteligente
// Verifica se o jQuery NÃO foi definido if (typeof jQuery == 'undefined') { if (typeof $ == 'function') { // warning, global var thisPageUsingOtherJSLibrary = true; } function getScript(url, success) { var script = document.createElement('script'); script.src = url; var head = document.getElementsByTagName('head')[0], done = false; //Anexar manipuladores para todos os navegadores script.onload = script.onreadystatechange = function() { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { done = true; // função de retorno fornecidos como param success(); script.onload = script.onreadystatechange = null; head.removeChild(script); }; }; head.appendChild(script); }; getScript('http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js', function() { if (typeof jQuery=='undefined') { // Super à prova de falhas - ainda de alguma forma falhou ... } else { // jQuery carregado! Certifique-se de usar .noConflict apenas no caso fancyCode(); if (thisPageUsingOtherJSLibrary) { // Execute seu código jQuery } else { // Use .noConflict (), em seguida, execute o código jQuery } } }); } else { // jQuery já foi carregado // Executar seu código jQuery };
Forma Document.write
var jQueryScriptOutputted = false; function initJQuery() { //se o objeto jQuery não está disponível if (typeof(jQuery) == 'undefined') { if (! jQueryScriptOutputted) { //apenas a saída do script uma vez .. jQueryScriptOutputted = true; //saída do script (carregá-lo do google api) document.write(""); } setTimeout("initJQuery()", 50); } else { $(function() { // fazer qualquer coisa que precisa ser feito em document.ready }); } } initJQuery();