Kom ihåg mig?
Home Menu

Menu


byta ut radbrytning mot <br> på klientsidan

Ämnesverktyg Visningsalternativ
Oläst 2005-01-10, 15:35 #1
magentoss avatar
magentos magentos är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2004
Inlägg: 26
magentos magentos är inte uppkopplad
Nykomling
magentoss avatar
 
Reg.datum: Nov 2004
Inlägg: 26
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>
magentos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-10, 17:15 #2
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
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?
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-10, 17:35 #3
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
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
...
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-10, 17:51 #4
magentoss avatar
magentos magentos är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2004
Inlägg: 26
magentos magentos är inte uppkopplad
Nykomling
magentoss avatar
 
Reg.datum: Nov 2004
Inlägg: 26
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.
magentos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-10, 18:47 #5
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
Originally posted by magentos@Jan 10 2005, 17:51
fast ett "\n" är väl en radbrytning (som översätts till cr+lf under windows, lf i unix)
nja är svaret...

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.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-10, 19:12 #6
magentoss avatar
magentos magentos är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2004
Inlägg: 26
magentos magentos är inte uppkopplad
Nykomling
magentoss avatar
 
Reg.datum: Nov 2004
Inlägg: 26
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...
magentos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-01-13, 14:37 #7
magentoss avatar
magentos magentos är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2004
Inlägg: 26
magentos magentos är inte uppkopplad
Nykomling
magentoss avatar
 
Reg.datum: Nov 2004
Inlägg: 26
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,"");

magentos är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017