Avatar billede raos Nybegynder
10. juni 2001 - 13:14 Der er 4 kommentarer og
3 løsninger

Preview

Jeg har en form indeholdende bla.
<textarea cols=\"45\" name=\"Message\" rows=\"6\" wrap=\"VIRTUAL\">

Inden jeg submitter formen ønsker jeg at kunne preview det indtastede i et nyt vindue. Det har jeg løst ved dette JS:

function Preview() {
msg =  document.forms[0].item(\"Message\").value

OpenWin = this.open(\"Preview.asp?text=\" + msg , \"CtrlWindow\", \"width=600,height=300,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no\");
}

Hvilket virker fint - problemet er bare at alle line-breaks ikke kommer med over - så strengen vises ud i \"en køre\" på preview.asp.

Hvordan løser jeg dette problem uden at submitte min form?
Avatar billede stigc Nybegynder
10. juni 2001 - 13:18 #1
<%

response.write(Replace(request(\"text\"), vbCrLf, \"<br>\"))

%>
Avatar billede perla Nybegynder
10. juni 2001 - 14:43 #2
Efter din

msg =  document.forms[0].item(\"Message\").value

indsætter du

Replace(msg, vbCrLf, \"<br>\")

og så skulle det virke

-Per
Avatar billede stigc Nybegynder
10. juni 2001 - 15:16 #3
det bliver jo nok lidt svært at tilgå klient/javascript variabler i ASP...
Avatar billede perla Nybegynder
10. juni 2001 - 15:41 #4
Ja, er kommet frem til lidt andet. Istedet for
Replace(msg, vbCrLf, \"<br>\")

skal du skrive

re = /(\\n)(\\r)/g
msg.replace(re,\"<br>\")

-Per
Avatar billede raos Nybegynder
10. juni 2001 - 16:05 #5
Tak for de mange gode forslag - men ingen af dem ser ud til at løse problemet med at alle line-feeds går tabt når de indsætted i Url\'en:
\"Preview.asp?text=\" + msg
Avatar billede jakoba Nybegynder
11. juni 2001 - 18:23 #6
noget a la dette:

function Preview() {
  msg =  document.forms[0].item(\"Message\").value
  msg2 = msg.replace(/\\n|\\n\\r/,\"<br>\");

  OpenWin = this.open(\"Preview.asp?text=\" + msg2 , \"CtrlWindow\",  \"width=600,height=300,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no\");
}

Jeg ville nok anbafale at du også escaper msg2 (og unescaper når den modtages)
  msg2 = escape( msg.replace(/\\n|\\n\\r/,\"<br>\") );
men hvis det virker for dig uden :-))

mvh JakobA


Avatar billede jakoba Nybegynder
11. juni 2001 - 18:27 #7
Ups, det mangler et g (for global) i regExp-en. Og en del programmer skrifer return før linefeeed:

  msg2 = escape( msg.replace(/\\n|\\n\\r|\\r\\n/g,\"<br>\") );
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester