tossesMedlem sedan aug. 2003190 inlägg Jag använder mig av en webbaserad htmleditor för att kunna skriva htmlformaterad epost och skicka iväg. Själva funktionen för att maila körs i JSP, javamail API.
Mitt problem är att visa data från databas tillbaka till htmleditorn. Det fungerar bra att lagra html i en formulärkontroll och sedan lagra i en databas, men tvärtom funkar det inte så bra, bara om man inte radbryter eller använder för många <>.
hmm hjälp!
Här finns en länk till exempel på editorn
http://ftg.mine.nu/proto210/
Hoppas nån kan hjälpa mig
JojoxxMedlem sedan juni 20004 308 inlägg Det låter som du inte kodar html-datat innan du visar det i webbläsaren. Skall du lägga "</textarea>" i en textarea måste webbläsaren få <textarea></textarea></textarea>.
tossesMedlem sedan aug. 2003190 inlägg Ok men att kopiera över datat från editorn vid onclick till en input type hidden går utmärkt. Allt lagras senare i DB'n med taggar och allt.
Det är senare när jag vill titta på datat i editorn igen som det skiter sig. Då funkar det så länge jag inte radbryter eller använder vissa taggar.
Editorn använder sig av Iframe
jag skriver:
IView.document.body.innerHTML = variabel_med_data_från_db
Hoppas ni förstår
JojoxxMedlem sedan juni 20004 308 inlägg Japp, med största sannolikhet är det just det problemet som jag nyss nämnde. Titta på detta exempel;
<script type="text/javascript">
IView.document.body.innerHTML = "<script type="text/javascript">enfunction(){ alert("Hello World");}</script>... lite mer html";
</script>
Exemplet skulle alltså kunna vara data som kommer från din databas om du laddar det direkt utan att koda det. Detta kommer givetvis inte att fungera. Dels innehåller variabel_med_data_från_db " som är samma som sträng-termineringen. Dessa måste bytas ut mot \" innan de skickas till webbläsaren. Eftersom strängen även innehåller </script> kommer webbläsaren att tro att här slutar script-blocket (mitt i en oavslutad sträng). Alltså måste < och > ersättas med < och > Finns det sedan radbrytningar i strängen måste dessa ersättas med \n och finns det "\" måste de allra först ersättas med "\\". Allt detta måste alltså göras på serversidan efter det att du hämtat datat från databasen och innan du skickar det till webbläsaren.
tossesMedlem sedan aug. 2003190 inlägg hmmmmmm sannorlikt ja! Jag tror du har rätt!
Ska kolla på det!!
Tack!
tossesMedlem sedan aug. 2003190 inlägg Jag tror att jag har kommit på det.
Så fort jag har en radbrytning i databasen så funkar det inte. Men lägger jag all HTMLkod på samma rad i db så funkar det!
alltså inte "<p>" utan radbryt.
undrar hur man tar bort radbryt i javascript
tossesMedlem sedan aug. 2003190 inlägg hmm ursäkta men om radbrytningar måste ersättas med \n så måste ju radbrytningar skrivas ............. ja just det hmmm hur då ?
alltså ersätt '...radbrytningarna...' med '\n'
...radbrytningarna... skrivs ???????? hur ?????
JojoxxMedlem sedan juni 20004 308 inlägg "\n" representerar en radbrytning i koden. Skall du ha en radbrytning på sidan som visas använder du html-taggen "<br>". En radbrytning i html är en s.k. white-space liksom mellanslag och kan därför ersättas med en annan white-space (ex. mellanslag). Enda anledningen till att du använder radbrytningar i "html-kod" är för att det skall bli enklare att läsa koden. Sidan ser likadan ut oavsett.
Således, skall du lägga in följande html-kod i en javascript-variabel;
<p>
Hello
"world"
<br/>
I can do this
</p>
Blir det:
variabel="&lt;p&gt;\nHello\n\"world\"\n&lt;br/&gt;\nI can do this\n&lt;/p&gt;";
tossesMedlem sedan aug. 2003190 inlägg Jag löste det på detta sätt:
brevtext = brevtext.replaceAll("\n","").replaceAll("\r","").replaceAll("\"","\\\\\"").replaceAll("\'","'");
Tack så mycket för all hjälp!!
Hade aldrig klarat det utan det.
JojoxxMedlem sedan juni 20004 308 inlägg