Avatar billede jensgram Nybegynder
08. september 2004 - 09:33 Der er 14 kommentarer og
2 løsninger

Erstatning af tegn samt indsættelse på cursorens plads

Hey

Titlen siger vist det meste, men jeg specificerer lige:

Jeg har et <textarea>, hvor jeg skriver nyheder (i HTML til formattering mm). Derfor vil jeg gerne have følgende funktioner:

1) Knapper eller links eller noget - det er underordnet - erstatter ø med &oslash;, Ø med &Oslash; osv. i hele tekstfeltet

2) Mulighed for at indsætte HTML på cursorens plads. Ex: indsæt "\n<br /><br />\n"

Jeg er ikke meget inde i brug af cursorens placering mv., så jeg kunne godt lige tænke mig lidt input til at komme i gang.

- Jens Gram
Avatar billede roenving Novice
08. september 2004 - 13:18 #1
1. Gør det serverside, mange server-side scriptingsprog har special-funktioner til det, og så forstyrrer det ikke nyhedsskriveren !-)

2. Kig f.eks på http://www.skovenborg.frac.dk/javascript/insertTag.php
Avatar billede olebole Juniormester
08. september 2004 - 13:39 #2
<ole>

Hvis du retter f.eks. '\n' til '<br>', inden du lægger tekst i databasen, har du vrøvl med, hvis teksten skal tilbage i et textarea og rettes/genoploades. Den slags formatering udføres altid, når teksten hentes fra DB'en og skrives ud ... ikke inden, den lægges i DB.

/mvh
</bole>
Avatar billede olebole Juniormester
08. september 2004 - 13:40 #3
PS: og det gøres - som roenving ganske rigtigt anfører - serverside  :)
Avatar billede olebole Juniormester
08. september 2004 - 13:41 #4
PPS: Bruger du PHP, kan du prøve at kikke på nl2br(), som retter '\n' til '<br />':
  http://www.php.net/manual/da/function.nl2br.php
Avatar billede jensgram Nybegynder
08. september 2004 - 18:05 #5
Hey begge to

Ja, jeg er godt klar over, at man i princippet ikke bør gøre som jeg gør, men det er nu engang sådan (og jeg har ikke lige overskud til at ændre det nu). Desuden virker det fint selvom jeg retter i en nyhed og gemmer den igen. Benytter blot htmlentities()

roenving > Det var åbenbart selectionEnd og Start jeg ledte efter - dem vil jeg prøve at rode med.

Hvad så med replace? Kan det betale sig at rode videre med denne:
$value = $value.replace(/<br>/gi, '');
???

- Jens


Ang. hele "debatten" med at gøre det serverside så vil jeg endnu engang understrege, at jeg i princippet er enige med jer, men at jeg ikke gad lave erstatninger for koder til links, lister, afsnit mm. når der nu alligevel findes HTML, som jeg jo bare kunne skrive direkte og så gemme i databasen. Derfra skal det så bare serveres til klienten...
Avatar billede roenving Novice
08. september 2004 - 18:23 #6
-- netop htmlentities() kan vel klare din oversættelse fra æøå...

-- ellers kan jeg nemlig ikke umiddelbart forestille mig andet, end at man skal udskifte bogstaverne een ad gangen:

var x = [/æ/g,/ø/g,/å/g,/Æ/g,/Ø/g,/Å/g,/é/g,/ü/g,/ö/g,/É/g,/Ü/g,/Ö/g];
var y = ['&aelig;','&oslash;','&aring;','&AElig;','&Oslash;','&Aring;','&eacute;','&uuml;','&ouml;','&Eacute;','&Uuml;','&Ouml;'];

for(i=0;x.length>i;i++){
  txt = txt.replace(x[i],y[i]);
}

-- og der er jo også lige nogle flere, som man kan komme til at bruge på dansk, specielt i forhold til navne, men også f.eks. låne-ord, som f.eks. flûte ...
Avatar billede jensgram Nybegynder
08. september 2004 - 19:06 #7
roenving > Jeg kan (som det er nu) nøjes med at erstatte æ, ø, å og ", så din post kan sagtens bruges. Desuden var det script du linkede til en stor succes.

Smid lige et svar.

Og stor tak til jer begge for inputs

- Jens
Avatar billede olebole Juniormester
08. september 2004 - 20:24 #8
Man skal nu passe lidt på med skandinaviske tegn i JavaScript ... også i en regExp. Vi har her på E i flere tilfælde været udefor, at specialtegn fejler i regExp. Derfor kan man ligeså godt gøre det i overensstemmelse med JS-standarden og bruge f.eks. escapede oktal-værdier:
  var x = [/\346/g,/\370/g,/\345/g,/\306/g,/\330/g,/\305/g,/\351/g,/\374/g,/\366/g,/\311/g,/\334/g,/\326/g];

Andre oktal-værdier kan fås med dette lille program (i øvrigt i ny version):
  http://tjenester.dk/x-codes.dk/eksperten/oktal_konverter/
/mvh
Avatar billede jensgram Nybegynder
08. september 2004 - 20:39 #9
Den siger, at der mangler en komponent. com32 et eller andet ocx

olebole > Gider du poste koderne til:

æ, ø, å, Æ, Ø, Å og é

Eller en URL til dem
Avatar billede olebole Juniormester
08. september 2004 - 20:53 #10
Hehe ... jeg har zq nok glemt at lægge installeren op - og kun lagt programmet. Det er kompileret på min maskine og refererer til de rigtige komponenter på _min_ maskine ... dohhh ... sorry. Den kommer op imorgen  :)

æ => \346
ø => \370
å => \345
é =>\351
Æ => \306
Ø => \330
Å => \305
É => \311

/mvh
Avatar billede jensgram Nybegynder
08. september 2004 - 20:55 #11
Mange tak

Smider I ikke begge et svar?
Avatar billede olebole Juniormester
08. september 2004 - 21:04 #12
*griiib*  :)
Avatar billede jensgram Nybegynder
08. september 2004 - 21:06 #13
Gotcha - og roenving?
Avatar billede roenving Novice
08. september 2004 - 22:18 #14
Velbekomme '-)
Avatar billede jensgram Nybegynder
09. september 2004 - 09:53 #15
Jeg takker
Avatar billede roenving Novice
09. september 2004 - 12:27 #16
-- og jeg takker for point ;~}
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