Domanda

In FireFox ho questo jQuery alla fine del corpo:

$(document).ready(function() {
     $.getScript('LiveMapsJavascriptProvider.aspx?type=reference&value=6', init);
});

Ci sono un sacco di file js nella testa, che sono necessari per essere caricato prima di tutto questo dovrebbe funzionare. Così ho messo la mia chiamata in un evento document.ready. Non funziona. IE funziona bene.

Se metto un avviso ( ''); prima che chiami $ .getScript funziona.

Si presenta come un problema con gli script non ottenendo ancora caricati?

Ho pensato document.ready stato licenziato dopo tutti gli script vengono caricati e pronti a partire.

Grazie, ian

È stato utile?

Soluzione

Non è necessariamente bisogno di utilizzare jQuery per questo.

È sufficiente avere una funzione onload come di seguito:

<body onload="JavascriptFunctionName">

In alternativa, è possibile collegare in modo dinamico la vostra chiamata di funzione per l'evento onload come illustrato di seguito:

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}
addEvent(window, 'load', JavascriptFunctionName);

È possibile incorporare le funzioni di jQuery chiamate all'interno della funzione JavascriptFunctionName.

Modifica :

jQuery è anche in grado di farlo attraverso il seguente codice. Vi consiglio di provare che il primo, per il bene di evitare inutili codice ridondante.

$(window).load(function() {
    JavascriptFunctionName();
});

Altri suggerimenti

document.ready viene licenziato dopo che il DOM è stato caricato. Si può provare questo:

$(window).load(function() {
    // will execute once all scripts and images are finished loading
});

Si può provare ad usare qualcosa di simile a head.js per specificare l'ordine di esecuzione, mentre ancora approfittando di caricamento parallelo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top