Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Problema con visualizzazione testo con js

    Alura eccovi il codice:

    codice:
    <html>
    <head>
    
    <style>
    span#mostra {
     display: none;
    }
    </style>
    
    <script language="javascript">
    function mostra() {
     if (document.getElementById('mostra').style.display=='none') {
      document.getElementById('mostra').style.display='inline';
     }
     else {
      document.getElementById('mostra').style.display='none';
     }
    }
    </script>
    
    </head>
    
    <body>
    
    MOSTRA TESTO
    
    
    
    
    <span id="mostra"> Cantami o Diva del pelide Achille l'ira funesta che infiniti addusse lutti agli Achei </span>
    
    </body>
    
    </html>
    Il problema è che quando lo eseguo (provate voi stessi) la prima volta devo cliccare due volte su "Mostra testo" affinchè lo script stampi a monitor la frase "cantami o Diva .. ecc". Poi cliccando nuovamente su "mostra testo" il testo sparisce e per farlo riapparire basta 1 click.

    Sapete a cosa è legato il problema? Inoltre... è possibile che, una volta aperto, il testo cambi da "mostra teto" a "nascondi testo"?

    Se questo script suka, ne conoscete mica uno in grado di fare tutto questo? Grazie in anticipo, Ciao!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La prima volta che viene eseguito lo style non e' "none" perche' lo style non e' dichiarato direttamente nel tag.

    quindi:
    codice:
    <html>
    <head>
    
    <style>
    span#mostra {
     display: none;
    }
    </style>
    
    <script language="javascript">
    function mostra() {
     if (document.getElementById('mostra').style.display=='none'||document.getElementById('mostra').style.display=='') {
      document.getElementById('mostra').style.display='inline';
     }
     else {
      document.getElementById('mostra').style.display='none';
     }
    }
    </script>
    
    </head>
    
    <body>
    
    MOSTRA TESTO
    
    
    
    
    <span id="mostra"> Cantami o Diva del pelide Achille l'ira funesta che infiniti addusse lutti agli Achei </span>
    
    </body>
    
    </html>
    oppure

    <span id="mostra" style="display: none;">

    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

  3. #3
    Grazie mille, works 100% !!

    Per l'altra chicchetta (ovvero far apparire nascondi testo invece di mostra) hai qualche consiglio da darmi? Qualcun altro ne ha uno?

    Grazie ancora, ciao!

  4. #4

  5. #5
    provo un ultimo UP (altrimenti poi i moderatori, giustamenti, si arrabbiano ^^)

    Nessuno? dovrebbe essere così semplice per voi experts in js:

    fare in modo che appaia "nascondi testo" quando questo è aperto...

    ho provato con un if e un document.write ma non sembra funzionare

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    No document.write() : ti cancella tutta la pagina.

    Devi usare
    getElementById('ID_OGGETTO').innerHTML = "nuovo testo";
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Scusami ma temo di non aver capito:

    Se al momento di scrivere la frase mostra/nascondi metto:
    codice:
    <script language="javascript">
    <!--
    if (document.getElementById('mostra').style.display=='none' ||document.getElementById('mostra').style.display=='') {
    getElementById('mostra').innerHTML = "Mostra"; 
    } else {
    getElementById('mostra').innerHTML = "Nascondi";
     }
    //-->
    </script>
    come fa a stamparmi la frase a monitor? Scusami ma di js sono a 0

  8. #8
    ho provato così:

    codice:
    <script language="javascript">
    <!--
    function mostra() {
     if (document.getElementById('mostra').style.display=='none' || document.getElementById('mostra').style.display=='') {
      document.getElementById('mostra').style.display='inline';
     }
     else {
      document.getElementById('mostra').style.display='none';
     }
    }
    
    function stato() {
     if (document.getElementById('mostra').style.display=='none' || document.getElementById('mostra').style.display=='') {
      document.getElementById('stato').innerHTML=Mostra;
     }
     else {
      document.getElementById('stato').innerHTML=Nascondi;
     }
    }
    
    //-->
    </script>
    mettendo su body --> onload="stato();"

    e dove deve stampare la scritta --> <div id="stato"></div>

    Solo che IE mi restituisce questo errore: 'Mostra' non è definito.

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script language="javascript">
    function mostra() {
     if (document.getElementById('mostra').style.display=='none'||document.getElementById('mostra').style.display=='') {
      document.getElementById('mostra').style.display='inline';
      document.getElementById('myLink').innerText='NASCONDI TESTO';
     }
     else {
      document.getElementById('mostra').style.display='none';
      document.getElementById('myLink').innerText='MOSTRA TESTO';
     }
    }
    </script>
    Per la compatibilita' non posso testarlo

    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

  10. #10
    Ok, fin qua ci sono... ma cosa devo mettere dove voglio che appaia il testo?

    <div id="mylink"></div> non funziona

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.