Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336

    Ajax

    Cercando di apprendere qualcosa riguardo ad Ajax, stavo tentando di capire il seguente codice:

    <html>
    <head>
    <title>AJAX, le basi prima dell' utilizzo</title>
    <script type="text/javascript">
    <!--//
    function prendiElementoDaId(id_elemento) {
    var elemento;
    if(document.getElementById)
    elemento = document.getElementById(id_elemento);
    else
    elemento = document.all[id_elemento];
    return elemento;
    };
    //-->
    </script>
    </head>
    <body onload="prendiElementoDaId('paragrafo').innerHTML = 'Buon giorno JavaScript';">
    <p id="paragrafo">
    testo del paragrafo che verrà cambiato al caricamento del documento
    </p>
    </body>
    </html

    -----------------------------------------------------------
    Praticamente da quanto ho capito al caricamento del body viene eseguita la funzione prendiElementoDaId('paragrafo') in modo da sostituire il testo racchiuso nel tag


    Mi è oscuro, invece, il funzionamento della funzione.
    Qualcuno mi saprebbe aiutare

  2. #2
    Premetto che questo non è prettamente AJAX in quanto è puro e semplice Javascript

    Cmq la funzione prendiElementoDaId() restituisce l'oggetto identificato dal parametro id_elemento.
    Se non erro document.all è un vecchio metodo introdotto da IE4 quando ancora getElementByID() non era stato standardizzato. In definitiva la funzione penso che sia stata pensata per funzionare sia con versioni vecchie di IE che con quelle più recenti.
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ma l'oggetto che restituisce sarebbe:
    document.getElementById(id_elemento) a cui poi verrebbe applicata la proprietà innerhtml

  4. #4
    Originariamente inviato da Alex75
    Ma l'oggetto che restituisce sarebbe:
    document.getElementById(id_elemento) a cui poi verrebbe applicata la proprietà innerhtml
    no, la funzione restituirebbe l'oggetto con id "paragrafo" che nel tuo codice sarebbe il paragrafo, per intenderci quello con il tag


    l'oggetto restituito poi dovrebbe esporre le proprietà tipiche del suo tipo per esempio .innerHTML.
    Stessa cosa la potresti fare con un tag <div> che di solito viene preferito per questo tipo di cose ^^
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    Ma con il codice: elemento = document.getElementById(id_elemento);
    quale valore verrà attribuito ad elemento e poi, dunque, restituito dalla funzione.

  6. #6
    La funzione scritta così:

    var elemento;
    if(document.getElementById)
    elemento = document.getElementById(id_elemento);
    else
    elemento = document.all[id_elemento];
    return elemento;

    equivale identandola e commmentandola un po' per maggior chiarezza:

    Codice PHP:
    //dichiara la variabile che conterrà l'oggetto ricercato
    var elemento;
    //testa che la proprietà getElementById() restituisca qualcosa. in caso non lo facesse usa document.all al posto (presumento che sia IE4)
    if(document.getElementById){
      
    //assegna a elemento l'oggetto ricercato
      
    elemento document.getElementById(id_elemento);
    }
    else{
      
    //assegna a elemento l'oggetto ricercato
      
    elemento document.all[id_elemento];
    }
    //ritorna il risultato
    return elemento
    Spero ora sia chiaro. Per completezza aggiungo che al giorno d'oggi l'utilizzo di document.all è deprecato a meno che tu non voglia per forza conservare la compatibilità con IE4 che è un browser di 10 anni fa....
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    CIOE' NEL NOSTRO CASO SPECIFICO ELEMENTO CHE VALORE ASSUMERA'

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Certo che sei stato davvero sfortunato a trovare un codice di quel tipo

    Guarda come ho imparato a scriverlo frequentando il forum javascript:
    http://forum.html.it/forum/forumdisp...p?s=&forumid=3

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
    
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    window.onload = function()
        {
            window.setTimeout(scrivi_su_paragrafo, 5000);
        };
        
    
    function scrivi_su_paragrafo()
    {
        $("paragrafo").innerHTML = 'Buon giorno JavaScript';
    }
    
    //al posto di mettere document.getElementById("div1"), mettere $("div1")
    //da prototype.js
    function $() 
    {
        var elements = new Array();
    
        for (var i = 0; i < arguments.length; i++) 
        {
            var element = arguments[i];
            if (typeof element == 'string')
                element = document.getElementById(element);
    
            if (arguments.length == 1)
                return element;
    
            elements.push(element);
        }
    
        return elements;
    }
    
    
    // ]]>
    </script>
    
    </head>
    <body>
        <p id="paragrafo">Tra 5 secondi questo testo sarà cambiato</p>
    </body>
    </html>

    Pietro

  9. #9
    Originariamente inviato da Alex75
    CIOE' NEL NOSTRO CASO SPECIFICO ELEMENTO CHE VALORE ASSUMERA'
    spero ti si sia solo incastrato il caps-lock

    Cmq come ti ho detto 'elemento' diventa di fatto l'oggetto trovato dal metodo document.getElementById('paragrafo')

    Visto che mi pare che tu abbia dei dubbi su cosa siano gli oggetti ti consiglio di dare un'occhiata qui: http://www.amagri.it/programmazione/...pt/oggetti.htm


    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Pagina senza titolo</title>

    <script language="javascript" type="text/javascript">
    // <!CDATA[
    window.onload = function()
    {
    window.setTimeout(scrivi_su_paragrafo, 5000);
    };


    function scrivi_su_paragrafo()
    {
    $("paragrafo").innerHTML = 'Buon giorno JavaScript';
    }

    //al posto di mettere document.getElementById("div1"), mettere $("div1")
    //da prototype.js
    function $()
    {
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++)
    {
    var element = arguments[i];
    if (typeof element == 'string')
    element = document.getElementById(element);

    if (arguments.length == 1)
    return element;

    elements.push(element);
    }

    return elements;
    }


    // ]]>
    </script>

    </head>
    <body>
    <p id="paragrafo">Tra 5 secondi questo testo sarà cambiato</p>
    </body>
    </html>


    --------------------------------------

    Già ma a questo punto trovo difficoltà a comprendere la funzione $()

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.