FAQ |
Kalender |
2005-01-10, 15:35 | #1 | |||
|
||||
Nykomling
|
hilfe!
jag försöker byta ut radbrytningar mot . problemet är bara att radbrytningen inte tas bort helt i IE6 nån som känner till någon lösning? tänker jag fel? jag vill gärna göra konverteringen på klientsidan. testsida: ccmmss.info/test1.html tack på förhand Kod:
<html> <head> <script type="text/javascript"> function replaceTextArea(elemWithTextNode, newString){ elemWithTextNode.removeChild(elemWithTextNode.lastChild); elemWithTextNode.appendChild(document.createTextNode(newString)); } function test1(elem){ var aString=elem.value var replaceStr="<br>"; var findStr=/\n/g; aString=aString.replace(findStr,replaceStr); replaceTextArea(elem,aString) } function test2(elem){ var aString=elem.value var replaceStr="\n"; var findStr=/<br>/g; aString=aString.replace(findStr,replaceStr); replaceTextArea(elem,aString) } </script> </head> <body> <form> <textarea id="ta1" rows="10" cols="30">[li nk1]</textarea> <br> <input type="button" onclick="test1(document.getElementById('ta1'))" value="test1 - 2html"> <input type="button" onclick="test2(document.getElementById('ta1'))" value="test2 - 2text"> </form> </body> </html> |
|||
Svara med citat |
2005-01-10, 17:15 | #2 | ||
|
|||
Mycket flitig postare
|
Det är inte ett \r som ligger kvar och spökar?
\n är ju newline för unix \r\n är "newline" för windows Är det till någon hjälp? Men varför måste denna konvertering ske på klienten? Varför kan inte ett serverscript göra detta när data behandlas? |
||
Svara med citat |
2005-01-10, 17:35 | #3 | |||
|
||||
Klarade millennium-buggen
|
Radbrytningar består i många fall av 2 tecken (ibland 1 tecken). Dessa är carriage return och Line Feed (ASCII kod 10 och 13...eller var det tvärtom?).
Du måste alltså byta ut båda och ersätta dessa med 1 st ... |
|||
Svara med citat |
2005-01-10, 17:51 | #4 | |||
|
||||
Nykomling
|
Tack.
kan absolut vara nåt med hur blanksteg tolkas. fast ett "\n" är väl en radbrytning (som översätts till cr+lf under windows, lf i unix) exemplet funkar dock på mozilla under windows. nä - det får nog lösas på serversidan för säkerhet skull. jag ville bara lägga ihop funktionerna för att rensa strängarana från mysko tecken på ett ställe. men fler förslag mottages gärna. edit: skrv inlägget innan roberts - missade att posta det bara - fast om '\n' = cr+lf i windows borde IE göra "rätt" om man ersätter '\n' med ? nä - får bli serversidelösning som sagt. |
|||
Svara med citat |
2005-01-10, 18:47 | #5 | ||
|
|||
Mycket flitig postare
|
Citat:
I C t.ex. är det korekt att en fil som öppnas som text och som innehåller \r\n vid inläsning blir \n och tvärt om. Den principen har säkert kopierats i t.ex. PHP och andra scriptspråk. Javascript kan jag inte uttala mig om eftersom jag (stolt) kan meddela att jag aldrig skrivit ett enda javascript (eftersom jag har den religösa övertygelsen att kod skall exekveras på servern och klienten skall bara visa HTML). Nåja, jag har kanske i enstaka fall kopierat någon funktion men det talar vi tyst om... Dessutom "har jag för mig" att javascript ofta tolkar tecken "lite som den vill" eller åtminstone inte på ett konsekvent sätt. Den "slutsatsen" drar jag utifrån mina kollegors erfarenheter. Men varför fundera så mkt... testa att byta \n mot först och sedan \r mot "" (dvs en tom sträng) och se om det inte funkar i samtliga browsers. |
||
Svara med citat |
2005-01-10, 19:12 | #6 | |||
|
||||
Nykomling
|
jag fick inte det att funka heller - är helt inne på serverspåret nu.
jag har ingen större erfarenthet av javascript, har gjort en del och skriver under på att det är rörigt med skillnaderna mellan webläsarna. fast fördelarna fins där: DOM är riktiigt tufft, och det är också väldigt lockande att lägga så mycket som möjligt på klienten för att minska trafiken till servern. om ändå IE och mozilla utvecklarna kunde gå ut å knäcka en bira och lösa alla problem... |
|||
Svara med citat |
2005-01-13, 14:37 | #7 | |||
|
||||
Nykomling
|
dags att summera.
fick det att funka på gecko och IE. aString = aString.replace(/\r\n/g,""); är overkill - men bäst att vara på den säkra sidan - javascript är ta mig tusan svartkonst och allkemi. :P var replaceStr=" "; var findStr=/\n/g; aString=aString.replace(findStr,replaceStr); aString = aString.replace(/\r\n/g,""); aString = aString.replace(/\n/g,""); aString = aString.replace(/\r/g,""); |
|||
Svara med citat |
Svara |
|
|