Visualizzazione dei risultati da 1 a 7 su 7

Discussione: su innerHTML

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    su innerHTML

    in una funzione ricevo il parametro note, che recupera la digitazione dell'utente in un TextArea

    c6 è un certo nodo tra i tag <td> e </td>

    da codice ricopio la variabile note in c6
    c6.innerHTML = note;

    adesso, se scrivo prova

    nel nodo vedrò prova in grassetto e non il testo digitato

    1) credo che basti sostituire < con &_l_t_; e > con &_g_t_;


    domanda: basta? o ci sono altri caratteri strani da sostituire?

    2) è possibile fare una funzione che sostituisca tutti i caratteri digitati con la sua rappresentazione in automatico?
    Pietro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    I caratteri da sostituire sono:
    < > & ' "

    All'interno di JS, quando si tratta di XHTML, occorre aggiungere:
    + = - ? : ; e forse pochi altri.

    Puoi applicare una sostituzione generale sulla stringa usando le RegExp:

    note = note.replace(/\</g, "&amp;lt;");
    idem per gli altri.


    Entita` piu` usate: http://www.w3schools.com/tags/ref_entities.asp
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho capito.

    Scusa, perchè disturbano i caratteri & ' "
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Perche` hanno un loro preciso significato nel codice HTML.


    Parliamo di scrivere codice fatto bene, non tanto di come poi i browser lo interpretano. In pratica sono le regole di XHTML.

    & non puo` essere usato all'interno delle stringhe, tipo:
    <a href="pippo.asp&id=pluto">
    che va scritta:
    <a href="pippo.asp&amp;amp;id=pluto">

    ' e " limitano le stringhe (ad esempio i valori degli attributi)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho capito, ti ringrazio
    Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    c'è modo di fare tutto questo in una sola passata? magari con espressioni regolari?
    codice:
    < > & ' " 
    
    
    
    & &amp;		&#38_;
    
    < &lt;		&#60_;
    
    > &gt;		&#62_;
    
    ' &acute;	&#39_;
    
    " &quot; 	&#34_;
    
    
    
    .replace(/\&/g, "&#38_;").replace(/\</g, "&#60_;").replace(/\>/g, "&#62_;").replace(/\'/g, "&#39_;").replace(/\"/g, "&#34_;");
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dato che i caratteri da sostituire sono piu` di uno, e che i computer sono intrinsecamente stupidi, la cosa con una passata non e` possibile.

    Cioe, sarebbe anche possibiile, ma non con le RegExp, quindi non conviene.

    Quello che hai scritto tu, e` tutto su una riga, non tutto in una passata: infatti prendi una stringa, applichi il primo replace (ottieni un'altra stringa), poi applichi il secondo replace , ecc.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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