Domanda

Ho iniziato a studiare UserJS in Opera. Per testare, ho provato a collegare la libreria jQuery e l'interfaccia utente di JQuery, ma non ha funzionato. Ecco il codice:

(function( ) {
    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    headID.appendChild(newScript);

    newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery2';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js';
    headID.appendChild(newScript);

    alert('first alert');
    window.addEventListener('load', function (e)  {
        $('body').html('test page');
    }, false);
})( );

Primo lavoro di allerta. Due librerie sono collegate alla pagina, ma il codice jQuery non funziona. Che c'è?

Ps. Ricevo un errore: ReferenceError: variabile indefinita: $

È stato utile?

Soluzione

I tuoi script vengono caricati in modo asincrono e probabilmente non sono ancora pronti quando la pagina è caricata, quindi $/jQuery non esistono ancora nell'ambito della finestra.

Dato che stai usando jQuery, puoi facilmente usare il suo $ (documento) .ready () o solo $ (), poiché funziona anche quando è stata caricata dopo la pagina.

Ecco un violino con un semplice script.onload Handler che spara JQuery's Ready () una volta che entrambi gli script sono disponibili:http://jsfiddle.net/qayjf/

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