Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    function attivata senza clic del mouse

    allora io ho fatto questa pagina per fare una prova
    <html>

    <head>
    <title>Nuova pagina 1</title>
    <script language="JavaScript" type="text/javascript">
    function stampa(){
    var n= document.m.r.value;
    document.getElementById('s').innerHTML= n;
    }
    </script>
    </head>

    <body>
    <form name="m">
    <input type="text" name="r">
    <input type="button" value="clicca" onclick="stampa()"></form>
    <div id="s"></div>
    </body>


    </html>


    in pratica mi restituisce ciò che scrivo nell'input in un id cliccando sul button

    ora vorrei che questa cosa venga fatta senza premere il button ma in tempo reale...cioè come l'utente scrive che la cosa venga stampata tramite id...come si fa?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    richiama stampa all' onkeyup del campo di testo

    onkeyup, onkeydown e onkeypress sono i gestori evento che possono tornarti utili in questo caso

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    il testo e andare accapo

    ho creato una pagina per provare il risultati ci sono degli errori per quanto riguarda la formattazione del testo quando premo i caratteri speciali ma risolverò appena posso

    un problema c'è...io scrivo nella textarea e il testo che scrivo compare nella cella dove vi è anteprima..quando però supero un certo numero di caratteri invece di andare accapo seguendo la larghezza della cella il testo allarga la cella...ho provato a impostare le larghezze ma non ne vuole sapere

    qualche esperto mi può aiutare

    www.atuttascienza.altervista.org/MM.htm

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    intanto puoi risolvere via css settando width e overflow:auto per quel livello in cui mostri l' anteprima

    se vuoi risolvere via javascript ti serve una regexp, per esempio, prima di stampare con innerHTML
    contenuto=contenuto.replace(/(\S{20})/g,function($1){return $1+' '});
    che forza uno spazio ogni 20 caratteri che non ne contengano

    occhio che con innerHTML permetti di iniettare xhtml a tutti gli effetti,
    che non e' auspicabile,
    filtrerei immediatamente qualsiasi <tag> e, se richiesto, permetterei di formattare con bbcode (come nella textarea in cui sto rispondendo alla discussione)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da Xinod
    intanto puoi risolvere via css settando width e overflow:auto per quel livello in cui mostri l' anteprima

    se vuoi risolvere via javascript ti serve una regexp, per esempio, prima di stampare con innerHTML
    contenuto=contenuto.replace(/(\S{20})/g,function($1){return $1+' '});
    che forza uno spazio ogni 20 caratteri che non ne contengano

    occhio che con innerHTML permetti di iniettare xhtml a tutti gli effetti,
    che non e' auspicabile,
    filtrerei immediatamente qualsiasi <tag> e, se richiesto, permetterei di formattare con bbcode (come nella textarea in cui sto rispondendo alla discussione)

    chiedo scusa, siccome sto entrando da poco nel mondo di html e co. vorrei capire cosa hai scritto da innerhtml in poi

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    perdonami tu, ma scendere nel dettaglio se non hai solide basi mi porta via troppo tempo

    quello che consiglio se vuoi impedire all' utente di inserire tag html e'

    function visualizza_testo(){
    contenuto=document.getElementById("testo").value;
    contenuto=contenuto.replace(/(\S{10})/g,function($1){return $1+' '});
    contenuto=contenuto.replace(/<[^\d\s].>/g,'');
    contenuto=contenuto.replace(/\n/g,"
    ");
    document.getElementById("preview").innerHTML=conte nuto;
    }

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da Xinod
    perdonami tu, ma scendere nel dettaglio se non hai solide basi mi porta via troppo tempo

    quello che consiglio se vuoi impedire all' utente di inserire tag html e'

    function visualizza_testo(){
    contenuto=document.getElementById("testo").value;
    contenuto=contenuto.replace(/(\S{10})/g,function($1){return $1+' '});
    contenuto=contenuto.replace(/<[^\d\s].>/g,'');
    contenuto=contenuto.replace(/\n/g,"
    ");
    document.getElementById("preview").innerHTML=conte nuto;
    }

    ciao
    GRAZIE NON TI PREOCCUPARE NON C'è PROBLEMA TI CAPISCO.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da Xinod
    perdonami tu, ma scendere nel dettaglio se non hai solide basi mi porta via troppo tempo

    quello che consiglio se vuoi impedire all' utente di inserire tag html e'

    function visualizza_testo(){
    contenuto=document.getElementById("testo").value;
    contenuto=contenuto.replace(/(\S{10})/g,function($1){return $1+' '});
    contenuto=contenuto.replace(/<[^\d\s].>/g,'');
    contenuto=contenuto.replace(/\n/g,"
    ");
    document.getElementById("preview").innerHTML=conte nuto;
    }

    ciao

    senti scusa ma se io scrivo <input> e co ancora mi produce html....

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    effettivamente, a sostituire in tempo reale, tag come <input restano aperti e vengono renderizzati

    prova con
    contenuto=contenuto.replace(/\</g,'&lt;').replace(/\>/g,'&gt;');
    al posto di
    contenuto=contenuto.replace(/<[^\d\s].>/g,'');

    che sostituisce solo < e > con le rispettive entita'

    ciao

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.