Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema con onLoad

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412

    Problema con onLoad

    Dentro il libro Javascript The definitive guide, è riportato un esempio che non capisco

    Codice PHP:
    // Register the function f to run when the document finishes loading.
    // If the document has already loaded, run it asynchronously ASAP.
    function onLoad(f) {
    if (
    onLoad.loaded// If document is already loaded
    window.setTimeout(f0); // Queue f to be run as soon as possible
    else if (window.addEventListener// Standard event registration method
    window.addEventListener("load"ffalse);
    else if (
    window.attachEvent// IE8 and earlier use this instead
    window.attachEvent("onload"f);
    }
    // Start by setting a flag that indicates that the document is not loaded yet.
    onLoad.loaded false;
    // And register a function to set the flag when the document does load.
    onLoad(function() { onLoad.loaded true; }); 

    è in particolare l'ultima riga che non capisco cosa dovrebbe significare...
    Ad occhio direi che è una sorta di sintassi abbreviata per l'"addEventListener" dell'onload, ma facendo delle prove non è così difatti non accade assolutamente nulla al caricamento della pagina.
    Potete darmi delle delucidazioni? thx

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    È un cattivissimo esempio. Lascialo perdere.
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    perchè? Vorrei capire la logica

    Comunque mi pare di capire che si tratta di uno snippet incompleto (preciso che io l'ho riportato pari pari com'è scritto sul libro), infatti non si capisce dove sia la funzione "f"..

    ma la cosa che più mi manda in tilt è quell'onLoad

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    questa è la funzione f

    function() { onLoad.loaded = true; }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    WTF??

    E dove sta scritto che si chiama f?

    Inoltre la roba all'interno della funzione function onLoad(f) viene eseguita solo se onLoad.loaded = true

    Da questo si capisce che prima di tutto deve essere eseguita la funzione
    onLoad(function() { onLoad.loaded = true; }),

    ma appunto io non vedo alcun eventlistener che la richiami

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    E dove sta scritto che si chiama f?

    è una funzione anonima che viene passata in input al metodo onload, il parametro di input si chiama f

    Da questo si capisce che prima di tutto deve essere eseguita la funzione
    onLoad(function() { onLoad.loaded = true; }),
    Infatti è cosi che succede, questa riga di codice non fa nient'altro che richiamare la funzione onload passando come parametro un altra funzione, il parametro di input viene chiamato f. Quindi come detto prima f corrisponde a function() { onLoad.loaded = true; }. Fai questa modifica function() { onLoad.loaded = true; alert("pagina caricata")} cosi vedrai che qualcosa succede.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    412
    ahh credo di aver capito, grazie!!

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.