2013-10-05 12 views
7

Sto cercando di capire come JSFiddle "esegue il wrapping" del codice in "onLoad" in base a questa descrizione: [1]: http://doc.jsfiddle.net/basic/introduction.html#javascript. Ho visto su Load essere utilizzato nel tag BODY dell'HTML per caricare le funzioni. Quindi JSF (dietro le quinte) avvolge ogni chiamata e ogni funzione che creo nella sua finestra JS? AKA:JSFinvolgere in onLoad?

onLoad = "myfunc1(),myfunc2,alert(1);" 

Se è così allora quando seleziono jQuery come un quadro, dovrei evitare di utilizzare questo formato:

$(document).ready(function(){ 
    myfunc1{(...)} 
    myfunc1{(...)} 
    ... 

scuso in anticipo se una questione di armatura.

risposta

10

Hanno inserito tutti i JS all'interno dei tag <script> con il codice evento avvolto attorno ad esso.

Per esempio, se si sceglie di includere jQuery e onLoad allora questo è ciò che jsfiddle userà:

<script type="text/javascript"> 
    //<![CDATA[ 
     $(window).load(function(){ /* your js here */ }); 
    //]]> 
</script> 

Se non includono una biblioteca poi usano:

<script type="text/javascript"> 
    //<![CDATA[ 
     window.onload=function(){ /* your js here */ } 
    //]]> 
</script> 

I si presume che utilizzino anche altri eventi specifici della libreria load in base a ciò che si sceglie di includere.

L'utilizzo di $(document).ready(function(){ }); non è necessario quando si esegue il codice in un violino.

Nota: per una buona spiegazione di ciò che è CDATA dare un'occhiata a questa risposta - https://stackoverflow.com/a/7092306/2287470

4

Si fa una nuova iframe per eseguire il codice in.

Per l'onload, hanno appena messo tutto il vostro codice in

window.onload = function() { 
    // your code here 
}; 

Si può vedere questo se si ispezionare il tag <script> nel <head> dell'iframe in basso a destra.


Niente di sbagliato con l'utilizzo $(document).ready(... ma è un pò inutile quando si attiva l'opzione onLoad in jsFiddle.