Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Alert che non si carica all'onload del body

    Salve, ho realizzato una pagina con semplici comandi JavaScript (prompt) in cui chiedo input all'utente per redigere una tabella finché non è immesso un controllo (lettera X) che chiude il ciclo.

    Stranamente questa funzione messa nell'head:
    codice:
    <script>
    function avviso() {
    	alert("Per interrompere l'immissione di voti, inserire nome studente X");
    }
    </script>
    codice:
    <body onload="javascript:avviso();">
    è eseguita quando l'utente digita X, non all'avvio della pagina.
    Il resto del JavaScript è nel body ma si tratta di istruzioni singole e non riunite in una funzione, può dipendere da questo?

    L'output è comunque perfetto a meno di questo alert che appare nel momento sbagliato.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,919
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Stranamente questa funzione messa nell'head:
    codice:
    <script>
    function avviso() {
    	alert("Per interrompere l'immissione di voti, inserire nome studente X");
    }
    </script>
    codice:
    <body onload="javascript:avviso();">
    è eseguita quando l'utente digita X, non all'avvio della pagina.
    Non devi usare il prefisso javascript: in quel contesto, e puoi rimuovere virtualmente anche le parentesi credo, in quanto la funzione verrebbe così assegnata come callback direttamente all'evento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    180
    E' preferibile gestire gli eventi in js tramite addeventlistener anzichè nel codice htm,l anche se quello che hai fatto dovrebbe funzionare ugualmente. Forse dipende da come hai scritto il resto dell'applicazione.
    Potresti utilizzare un approccio simile.

    codice:
    <body>
    
        <script>
            document.addEventListener('DOMContentLoaded', init)
    
            function init() {
                
                (function avviso() {
                    alert("Per interrompere l'immissione di voti, inserire nome studente X")
                })()
    
                function test1() {
                    alert("test1")
                }
    
                function test2() {
                    alert("test2")
                }
             
            }
    
        </script>
    </body>

  4. #4
    Il problema credo risieda nel fatto che, scritto così il codice, la function si carica al completo caricamento della pagina, che però attende l'immissione dei dati da prompt().
    Ho aggirato creando una pagina start.html e collegando l'alert() a un onClick sul link che punta alla pagina dove risiede l'effettivo programmino.

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 © 2021 vBulletin Solutions, Inc. All rights reserved.