[ somikg @ 14.07.2011. 17:49 ] @
Zdravo svima,

imam sledeći problem. Imam formu gde korisnik može da unosi neke podatke. Svakakvih korisnika ima,pa se eto desilo da korisnik unese escape sekvencu (npr. tekst \n tekst). Takav unos je spucan u bazu. Medjutim, korisnik klikom na dugme može otvoriti neki pop up prozor u kojem mu se prikazuje uneti komentar. Svi prozori rade bez problema, osim onih koji sadrže escape sekvence,njih nikako ne može da otvori. U pitanju je asp classic sa java scriptom. Nikako ne mogu da nađem rešenje... Da li je neko imao sličan problem?
[ dejanet @ 15.07.2011. 07:38 ] @
\n - je new line
Probaj da nadjes gde se otvara popup i sa kojim parametrom(verovatno taj tekst) u javascript-u, pa onda taj tekst provuci:
//varijanta da eliminises \n
popuptekst = popuptekst.replace(/\n/g, "");
//varijanta da zamenis sa html novim redom
popuptekst = popuptekst.replace(/\n/g, "<br />");
[ somikg @ 15.07.2011. 09:42 ] @
Da li mozda pravi problem sto se prethodno tekst formatira kao html? Evo kako to radi:
Code:

popUp =window.open("", "", "toolbar=no, menubar=no, resizable=yes, scrollbars=yes, location=no, left=100, top=100, status=yes, " + "width=500, height=300");
popUp.document.open("text/html", "replace");
reportWindow.document.write(htmlString)

gde je htmlString, string iz baze koji se formatira pre nego sto se prikaze u prozoru.

Desilo se da je naisao na tekst oblika; teksttekst '\n' teksttekst, i ne moze da otvori popUp.

Probao sam
Code:
popUp.document.write(htmlString.replace(/\n/g, "<br />"));
, ali nije proslo.
[ somikg @ 17.07.2011. 14:46 ] @
Meni je potrebno samo da prikažem ono što je korisnik uneo i kako je uneo. Znači, ako je uneo '\n' onda tako treba i da prikaze.
[ dejanet @ 17.07.2011. 14:54 ] @
Cekaj, jedino gde vidim iz prilozenog, da je prikaz tog htmlString-a u :
reportWindow.document.write(htmlString)

sto znaci da bi trebalo:

Code:
htmlString=htmlString.replace(/\n/g, "<br />");
reportWindow.document.write(htmlString);


sa tim da ovo vazi za text/html tip strane.. (tag br je novi red, a u text-u(ascii) /n je novi red)
[ somikg @ 17.07.2011. 15:36 ] @
Mislim da se nismo razumeli. Ne treba meni da \n zamenim <br/>. Ono sto hocu je samo da prikazem \n,bas tako kako je uneto
[ somikg @ 17.07.2011. 15:48 ] @
Da li mozda treba da promenim charset? Trenutno je windows-1250...
[ somikg @ 17.07.2011. 19:17 ] @
Opet sam malo testirao, i kada user upise samo \ , popuUp se otvori,ali u njemu nema karaktera. Kada upise \n, popUp se uopste ne otvara. Kada upise \\, popUp se otvori,ali opet nema teksta.
Code:
 
   htmlString =  "<!doctype html public ""-//W3C//DTD HTML 4.0 Transitional//EN""><html><head>"
    htmlString = htmlString & "<title> Report, " & pd.ID & ", " &YYYYMMDD2string(rd.date) & "</title>"
    htmlString = htmlString & "<meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1250"">"
    htmlString = htmlString & "<meta name=""Author"" content=""Test""><div style=""font-family:Arial; font-size:9pt;"">"


htmlString = htmlString & "<b>Comment:</b>"
        htmlString = htmlString & "<br>"
        htmlString = htmlString & replace(rd.text, chr(13) & chr(10), "<br>")
        htmlString = replace(htmlString, chr(13), "")
        htmlString = replace(htmlString, chr(10), "")
        htmlString = htmlString & "<br />"



Function dshb_escapeHTML(s) 
  If s <> "" Then
    s = replace(s, "'", "&#39;")
    s = replace(s, """", "&quot;")
    s = replace(s, "  ", "&nbsp;&nbsp;")
    dshb_escapeHTML = replace(s, """", "\""")
  Else
    dshb_escapeHTML = ""
  End If
End Function