Visualizzazione dei risultati da 1 a 6 su 6

Discussione: funzione ricorsiva

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093

    perchè?????

    function apri() {
    var link = arr_links[Math.floor(arr_links.length*Math.random())];
    var finestra = window.open(link);
    //window.setTimeout("if(finestra != null && !finestra.close) finestra.close();", " ", _tout);
    window.setTimeout("finestra.close()", 3000);
    }

    window.setTimeout("apri()", 4000);


    comee mai mi dice che finestra non è definito? se lo uso cosda dentro a funzione?...

    E come faccio a far si che la funzione venga eseguita ogni tot secondi ricosivamente...??

    grazie mille

    ciao

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    grazie x il titolo molto esplicativo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    scusa hai ragione....volevo metterci funzione ricorsiva ma me lo sono perso....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    nessuno mi può aiutare??

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    se definisci la variabile all'interno della funzione e' locale, cioe' si perde nel momento in cui la funzione termina.
    Il setTimeout(), eseguendo l'istruzione contenuta quando la variabile non esiste piu' genera l'errore.

    var finestra;
    function apri() {
    var link = arr_links[Math.floor(arr_links.length*Math.random())];
    finestra = window.open(link);
    //window.setTimeout("if(finestra != null && !finestra.close) finestra.close();", " ", _tout);
    window.setTimeout("finestra.close()", 3000);
    }
    window.setTimeout("apri()", 4000);

    se poi tutto il ciclo deve ripetersi ogni 4 secondi devi mettere l'ultima istruzione anche all'interno della funzione:

    var finestra;
    function apri() {
    var link = arr_links[Math.floor(arr_links.length*Math.random())];
    finestra = window.open(link);
    //window.setTimeout("if(finestra != null && !finestra.close) finestra.close();", " ", _tout);
    window.setTimeout("finestra.close()", 3000);
    window.setTimeout("apri()", 4000);
    }

    window.setTimeout("apri()", 4000);

    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    Mitico....provo grazie mille...e grazie a chi ha cambiato il titolo...scusate ancora...

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.