Barcaro Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 Ho fatto un piccolo script JS che scrive automaticamente in una textarea e che alla fine di ogni "istanza" di scrittura dovrebbe andare a capo. Con Mozilla Firefox e IE 6-7 per Windows tutto ok, con Safari e derivati (ho provato con Shiira & Safari) il carattere \n apparentemente non viene scritto. Il problema si presenta anche quando vado a scrivere in un alert/confirm/prompt, con la differenza che qui Safari va correttamente a capo mentre Shiira non mostra la riga dopo \n. E' un problema aggirabile in qualche maniera? Ho sbagliato qualcosa? il codice JS è il seguente (ordine è il nome della textarea): function ordineScrivi(testo){ var n_pezzi = prompt(testo+"\nNumero articoli da inserire:"); if(n_pezzi == 0 || n_pezzi == null){ return; } if (document.getElementById) { document.getElementById('ordine').innerHTML += testo+n_pezzi+'\r\n'; } } Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 per andare a capo basta \n, non serve \r\n prova a togliere \r Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
Barcaro Inviato 20 Dicembre 2006 Autore Segnala Condividi Inviato 20 Dicembre 2006 per andare a capo basta \n, non serve \r\nprova a togliere \r Già fatto ma non funge Link al commento Condividi su altri siti Altre opzioni di condivisione...
macblond Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 Barcaro... '\n' va bene in un alert... se modifichi un innerHTML allora devi mettere un <br/> (eventualmente un <div> che faccia la stessa funzione, ma che devi creare via css). CIAO MacBook Pro 1.83GHz - 1.5GB ram Link al commento Condividi su altri siti Altre opzioni di condivisione...
strangetrip Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 Barcaro... '\n' va bene in un alert... se modifichi un innerHTML allora devi mettere un <br/> (eventualmente un <div> che faccia la stessa funzione, ma che devi creare via css).CIAO Ti consigli anch'io i css. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Barcaro Inviato 20 Dicembre 2006 Autore Segnala Condividi Inviato 20 Dicembre 2006 Ma anche con la textarea? Se gli dico di scrivere <br /> nella textarea mi scrive il codice, io voglio semplicemente che mi vada a capo nella textarea, con Firefox e IE funziona correttamente con Safari invece no. edit: sono un babbeo, ho provato or ora e funziona, grazie a tutti Link al commento Condividi su altri siti Altre opzioni di condivisione...
Barcaro Inviato 20 Dicembre 2006 Autore Segnala Condividi Inviato 20 Dicembre 2006 Mapperò adesso mi scrive <br /> nella Textarea in FF e non mi va a capo... uffi... farò un str_replace lato server e taglio la testa al manzo. Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 l'indicazione dell'a-capo deve essere realizzata in modo coerente al contesto se è un a capo che va reso in un testo html e forzato nel corpo della pagine web allora devi usare <br /> se invece è un a capo che va reso nell'ambito di un puro testo ASCII (es in un textarea di una form), allora devi usare \n o comunque una sequenza di a capo analoga Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
macblond Inviato 20 Dicembre 2006 Segnala Condividi Inviato 20 Dicembre 2006 Barcaro scusa... nn avevo letto che eri in una textarea, pensavo fosse testo semplice di una pagina... sarebbe più semplice fare un div apposito e poi scriverci dentro (con getelementbyid.innerhtml)... tanto il div lo puoi trattare come una textarea (dimensione fissa e scroll) e ha il vantaggio che "accetta" parametri html (quindi i <br/>, testo formattato, eccetera)! Cmq io ho fatto una prova e ho notato che il carattere \n alla fine della riga è sgradito a safari... se invece di '\n' scrivi '\n ' (nota lo spazio dopo la n!!!), in safari funziona correttamente... in firefox la nuova riga inizia con uno spazio bianco (ovviamente). A 'sto punto devi trovare un artificio perchè safari scriva un carattere in più alla fine della riga, dopo \n. Quindi una funzioncina che controlli il browser (ce ne sono a decine su internet). CIAO MacBook Pro 1.83GHz - 1.5GB ram Link al commento Condividi su altri siti Altre opzioni di condivisione...
Barcaro Inviato 20 Dicembre 2006 Autore Segnala Condividi Inviato 20 Dicembre 2006 Barcaro scusa... nn avevo letto che eri in una textarea, pensavo fosse testo semplice di una pagina... sarebbe più semplice fare un div apposito e poi scriverci dentro (con getelementbyid.innerhtml)... tanto il div lo puoi trattare come una textarea (dimensione fissa e scroll) e ha il vantaggio che "accetta" parametri html (quindi i <br/>, testo formattato, eccetera)!Cmq io ho fatto una prova e ho notato che il carattere \n alla fine della riga è sgradito a safari... se invece di '\n' scrivi '\n ' (nota lo spazio dopo la n!!!), in safari funziona correttamente... in firefox la nuova riga inizia con uno spazio bianco (ovviamente). A 'sto punto devi trovare un artificio perchè safari scriva un carattere in più alla fine della riga, dopo \n. Quindi una funzioncina che controlli il browser (ce ne sono a decine su internet). CIAO Mi serve che l'utente possa modificare direttamente la textarea "a mano" dunque la soluzione del div non è indicata per il mio problema. Dall'altra parte non sono molto propenso ad appesantire il codice con un controllo browser. Bel dilemma... Comunque ora provo ad approfondire il concetto del '\n ' e vi fo sapere. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Barcaro Inviato 20 Dicembre 2006 Autore Segnala Condividi Inviato 20 Dicembre 2006 function ordineScrivi(testo){ var n_pezzi = prompt(testo+'\n Numero articoli da inserire:'); if(n_pezzi == 0 || n_pezzi == null){ return; } var str = testo+n_pezzi; var regEx = /Safari/; if(vers.match(regEx)){ // alert("Browser Safari based"); str += '\n '; }else{ str += '\n'; } if (document.getElementById) { document.getElementById('ordine').innerHTML += str; } } Per ora ho risolto così. Grazie ancora a tutti:ciao: Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.