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

    Evento di tastiera keydown

    salve, perche non va il codice, in toeria se premo qualsias tasto mi dovrebbe comparire il alert

    codice HTML:
    <body onload="main()"></body>
    <div></div>
    <style>
      div {width:400px; height:400px; border:solid black;}
    </style>
    <script type="text/javascript">
      
    
      function main(){
        
        document.elementsByTagName("div")[0].addEventListener("keyDown", function(){
          alert("c");
        })
        
      }
    </script>

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    Ciao, prova a verificare nella console web del tuo browser e vedi cosa salta fuori. Per aprire la console premi F12 o guarda nel menu strumenti.

    In teoria stai sbagliando diverse cose:

    - La funzione elementsByTagName non esiste, dovrebbe essere getElementsByTagName;
    - Il nome dell'evento non è keyDown ma keydown (occhio a minuscole e maiuscole, JavaScript è un linguaggio case-sensitive);
    - Non puoi applicare un gestore dell'evento keydown ad un elemento che non è selezionabile. Quel generico div non lo è. Potresti renderlo selezionabile specificando l'attributo tabindex="0" direttamente sul tag, oppure potresti semplicemente applicare il gestore direttamente sull'oggetto document.

    Altre cose:

    - meglio che il tag <style> sia inserito dentro <head> e non nel <body>;
    - per un migliore debug ti consiglio di usare la console web e la funzione console.log() con cui puoi mostrare degli output sulla console, piuttosto che alert().

    Esempio:
    codice:
    <!DOCTYPE HTML>
    <html lang="it">
       <head>
          <title>Esempio</title>
          <meta charset="utf-8">
          <script>
             function main(){
                document.getElementsByTagName("div")[0].addEventListener("keydown", function(e){
                   console.log(e.key); // verifica l'output nella console web
                })
             }
          </script>
          <style>
             div {width:400px; height:400px; border:solid black;}
          </style>
       </head>
       <body onload="main()"></body>
          <div tabindex="0"></div>
       </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    589
    Aggiungo io poi che il tasto lo intercetti solo su campi in cui c'è input... sul div non c'è...perchè il focus del cursore come ce lo metti?
    ho provato la tua routine e funziona se usi un campo input e naturalmente correggi gli errori come ti ha detto KillerWorm
    Vic53

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