Inserire script in javascript

di il
4 risposte

Inserire script in javascript

Ciao a tutti. Sto provando a inserire questo codice:

function realizzaTempo()
  {
     numero=document.getElementbyID("number").value;
   /* ore=parseInt(numero/3600);
    resto=numero-(ore*3600);
    min=parseInt(resto/60);
    sec=resto-(min*60);
    document.write( ore + " Ore " + min + " Minuti" + sec + "Secondi");
    */
   document.write(numero);
  }
  
in una pagina Html come questa:

<html>
    <body>
        <input type="text" id="number">
        <input type="button" value="Test" onclick="realizzaTempo()">
        <script type="text/javascript" src="contaTempo1.js"></script>
    </body>
</html>
Siccome non funziona vorrei capire se dipende da me o c'è qualche bug in visual studio code?
Saluti

4 Risposte

  • Re: Inserire script in javascript

    tonyven ha scritto:


    Ciao a tutti. Sto provando a inserire questo codice: [...]
    Siccome non funziona vorrei capire se dipende da me o c'è qualche bug in visual studio code?
    Definisci il "non funziona", e spiega innanzitutto cosa vuoi fare.

    Oltre a questo, un primo indizio: hai usato , ma prima approfondisci bene a cosa serve nella documentazione ufficiale (vedi link) e, dopo averla letta, riguarda il tuo codice e prova a pensare se l'uso che ne hai fatto produce quello che ti aspetti di vedere sul click.

    Ciao!
  • Re: Inserire script in javascript

    Ciao. In una casella di testo inserisco dei valori e premendo il pulsante mi dovrebbe visualizzare a video i valori inseriti. Caspita! Non pensavo che document.write() potesse creare tutti questi problemi. Però l'ho già usato in un'altro script e non mi ha dato problemi. Sto provando a separare in due file distinti il codice html da quello js e vedere se funziona. Se nel document.write() inserisco una stringa ,funziona tutto come vorrei. Mentre se prendo il valore con getElementById().value e poi lo passo a document.write() non funziona.
    Saluti
  • Re: Inserire script in javascript

    tonyven ha scritto:


    In una casella di testo inserisco dei valori e premendo il pulsante mi dovrebbe visualizzare a video i valori inseriti.
    Quando devi "visualizzare a video" qualsiasi cosa, devi stabilire dove questa informazione deve comparire e modificare il DOM tramite JavaScript di conseguenza.

    tonyven ha scritto:


    Caspita! Non pensavo che document.write() potesse creare tutti questi problemi.
    Non c'è alcun problema creato da document.write(): funziona perfettamente, se viene usato per lo scopo per il quale è progettato, ossia per fare sì che durante la creazione del DOM della pagina si possa inserire - chiamando appunto document.write() - un testo in cui quel punto.

    tonyven ha scritto:


    Però l'ho già usato in un'altro script e non mi ha dato problemi.
    Tutti gli usi di questa funzione che trovi in giro sono scritti in modo che la chiamata a document.write() venga eseguita mentre si sta scaricando il codice HTML della pagina ed eseguendo pertanto gli script che si trovano all'interno.

    In breve, mentre il browser fa il parsing del markup HTML della pagina scaricato, se trova script all'interno li esegue, e ovunque vi sia un document.write() questo interviene sul meccanismo inserendo in quel punto il testo specificato, che entra a far parte della pagina assieme al resto, come se fosse stato "parsato" in diretta ovvero come se fosse presente all'interno della pagina nel momento della chiamata.

    tonyven ha scritto:


    Sto provando a separare in due file distinti il codice html da quello js e vedere se funziona.
    Sebbene non risolverà alcun problema, separare il codice JavaScript dalla pagina HTML che lo richiama creando file differenti è utile per mantenere isolati la parte di rappresentazione della pagina (file HTML) dal codice di scripting che la gestisce (file JS).

    tonyven ha scritto:


    Se nel document.write() inserisco una stringa ,funziona tutto come vorrei.
    Mentre se prendo il valore con getElementById().value e poi lo passo a document.write() non funziona.
    Il tuo contesto è completamente differente, e basta pensarci un attimo per capirlo: tu scrivi document.write() perché vorresti visualizzare un testo quando fai clic, ma... dove dovrebbe andare a finire questo testo? in quale punto della pagina? all'inizio, a metà o in fondo? La chiamata si trova all'interno di una funzione che non viene chiamata quando si carica la pagina ma solo successivamente, e solo se si fa click sul pulsante, senza alcuna elaborazione in corso del documento, ossia della pagina Web.

    Quello che devi fare è recuperare il valore dell'elemento, e poi usare le funzioni del DOM (accessibili dall'oggetto document, o window.document per dirlo in altro modo) allo scopo di recuperare il riferimento all'elemento nel quale vuoi mostrare il contenuto, oppure creandolo ex-novo e inserendolo nell'albero degli oggetti che costituiscono il suddetto DOM, ovvero il modello ad oggetti che rappresenta la struttura della pagina corrente (leggi questa introduzione).

    In breve, potresti aggiungere un elemento nella pagina - inizialmente vuoto - che successivamente ospiterà il valore recuperato quando avviene il click.

    Nella pagina HTML basta aggiungere una cosa del genere:
    
    <div id="target"></div>
    
    e nella funzione codificare una cosa simile alla seguente:
    
    function realizzaTempo() {
      numero = parseInt(document.getElementById("number").value);
      document.getElementById("target").innerText = numero;
    }
    
    P.S.
    JavaScript è un linguaggio case sensitive: le maiuscole e le minuscole sono diverse, quindi se scrivi una cosa del tipo document.getElementbyID non funzionerà, perché il nome corretto del metodo è questo: document.getElementById.

    Ciao!
  • Re: Inserire script in javascript

    FUNZIONA! Finalmente funziona. Ora per capire quello che hai scritto mi ci vuole un pò
Devi accedere o registrarti per scrivere nel forum
4 risposte