Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41

    Importare codice javascript esterno con ajax

    Ciao, vorrei importare nella mia pagina il codice javascript presente in un dominio esterno (ad esempio le librerie jquery). La cosa mi sembrava molto facile quando ho iniziato a pensarci, ma più provavo più sembrava diventare difficile!!
    Una soluzione che mi è venuta in mente è di importare il file JS come testo e scriverlo nella pagina html. Ho provato un esempio di questo sito:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" >
    <head>
    <title>HTML.it | AJAX | Primo esempio</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <meta name="description" content="HTML.it | Guida ajax, request testuale" />
    <meta name="keywords" content="guida, ajax, remote scripting, esempio, esempi" />
    <meta name="author" content="Andrea Giammarchi per HTML.IT" />
    <script type="text/javascript" src="utility.js"></script>
    <script type="text/javascript"><!--//
    
    // funzione di caricamento testo,
    // accetta una stringa contenente
    // il nome di un file da leggere
    function caricaTesto(nomeFile) {
    
      // variabili di funzione
      var
        // assegnazione oggetto XMLHttpRequest
        ajax = assegnaXMLHttpRequest(),
        // assegnazione elemento del documento
        elemento = prendiElementoDaId("contenuto-dinamico"),
        // risultato booleano di funzione
        usaLink = true;
      
      // se l'oggetto XMLHttpRequest non è nullo
      if(ajax) {
        // il link al file non deve essere usato
        usaLink = false;
    
        // impostazione richiesta asincrona in GET
        // del file specificato
        ajax.open("get", nomeFile, true);
    
        // rimozione dell'header "connection" come "keep alive"
        ajax.setRequestHeader("connection", "close");
    
        // impostazione controllo e stato della richiesta
        ajax.onreadystatechange = function() {
          
          // verifica dello stato
          if(ajax.readyState === readyState.COMPLETATO) {
            // verifica della risposta da parte del server
            if(statusText[ajax.status] === "OK")
              // operazione avvenuta con successo
              elemento.innerHTML = ajax.responseText;
            else {
              // errore di caricamento
              elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.
    ";
              elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
            }
          } 
        }
    
        // invio richiesta
        ajax.send(null);
      }
       
      return usaLink;
    } 
    
    //--></script>
    <style type="text/css" media="all">
    body {
     font-family: Verdana, Helvetica, sans-serif;
     font-size: 9pt;
     background: #FFF;
     color: #000;
    }
    h1 {
     font-size: 12pt;
     border-bottom: 1px solid silver;
     color: #009;
    }
    </style>
    </head>
    <body>
    <div>
    <h1>Request Testuale</h1>
    
    <div id="contenuto-dinamico">
    Questo testo è stato inserito all'interno di un elemento di tipo div
    con id univoco: contenuto-dinamico .
    
    Per cambiare questo contenuto è sufficiente clickare su
    
    <!-- è importante fare caso alla costruzione di questo link:
         permette di leggere il testo anche senza AJAX -->
    questo link.
    </div>
    
    </div>
    </body>
    </html>
    Il problema è che se modifico il file da leggere da "testo.txt" a http://ajax.googleapis.com/ajax/libs.../jquery.min.js (ad esempio), il contenuto del div non presenta il testo del file JS. Al contrario la pagina viene ricaricata e compare solo la scritta "false"....
    Che cosa sto sbagliando?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ajax non puo' leggere contenuti di altri domini.

    Devi usare la solita sintassi <script src=....

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    43
    prova a guardare la guida "javascript tecniche avanzate" di questo sito, si parla anche di Lazy Loading che credo sia quello che ti serve ( ma non ne sono sicurissimo perche ho dato solo un'occhiata)...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41
    Originariamente inviato da br1
    Ajax non puo' leggere contenuti di altri domini.

    Devi usare la solita sintassi <script src=....

    ciao
    Si, il fatto è che non posso usare quella sintassi, perchè devo modificare il dom di una pagina dopo che questa è stata scaricata... Anche se nel dom creo il tag <script src=ecc. ecc. poi non posso utilizzare il codice che vorrei importare, perchè di fatto il browser non lo carica...

    Ora do un'occhiata al lazy loading.
    Intanto grazie mille!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.