Avatar billede Slettet bruger
06. december 2001 - 21:50 Der er 7 kommentarer og
1 løsning

xx - streng - xx?!

Jeg har en funktion til at indsætte HTML-koder om en streng i en tekstbox:

function addText(start,end){
  selText = document.selection.createRange();
  selText.text = start + selText.text + end;
}

Funktionen ekserkveres ved klik på en commandbutton - MEN - funktionen afhænger ikke kun af tekstfeltet. Dvs. hvis jeg markerer noget tekst i dokumentet - så sætter den også koderne omkring det.

Altså - hvordan begrænser man funktionen til tekstboksen?!
Avatar billede Slettet bruger
06. december 2001 - 22:35 #1
Det er jeg ikke sikker på, du kan. Men du kan evt. prøve at tjekke, om det selectede tekst findes i tekstboksen, og hvis det gør så eksekvere resten af funktionen. Men det er selvfølgelig ingen garant, da du også meget vel kan have den samme tekst stående andre steder på siden!
Men sådan her er min idé:

function addText(start,end) {
selText = document.selection.createRange();
if (document.dinForm.dinTekstBoks.value.indexOf(selText) != -1) {
selText.text = start + selText.text + end;
}
}
Avatar billede Slettet bruger
06. december 2001 - 22:35 #2
Og så var der ikke engang brug for krøllerne {} !
Avatar billede Slettet bruger
06. december 2001 - 22:40 #3
Jeg har flere forskellige form-navne...så jeg kan ikke give et entydigt navn for formen...men man kan ikke udelade det (document.dinTekstBoks....)!? Så får jeg i hvert fald en fejl

/Dan
Avatar billede Slettet bruger
07. december 2001 - 15:52 #4
Jeg har en meget bedre idé! Du skal selvfølgelig bare sætte en variabel til false ved body onLoad og så ændre den til true, når der er fokus på en tekstboks, og til false, når fokussen går væk igen!

Sådan skal dit script se ud:

<script>
cursorITB = false;

function addText(start,end) {
if (cursorITB == true) {
selText = document.selection.createRange();
selText.text = start + selText.text + end;
}
}
</script>

Og i dine tekstfelter/tekstareas:
onFocus=\"cursorITB = true;\" onBlur=\"cursorITB = false;\"
Fx:
<input type=\"text\" name=\"tb\" onFocus=\"cursorITB = true;\" onBlur=\"cursorITB = false;\" value=\"Bla bla bla\">
Eller:
<textarea name=\"ta\" onFocus=\"cursorITB = true;\" onBlur=\"cursorITB = false;\">Bla bla bla</textarea>
Avatar billede Slettet bruger
07. december 2001 - 16:02 #5
Nårh nej... For onFocus-eventen bliver jo også fyret af, når man klikker på knappen.
Jeg prøver lidt videre!
Avatar billede Slettet bruger
07. december 2001 - 16:24 #6
Nope, jeg er helt tom for idéer. Tro mig, jeg har prøvet næsten alt! Jeg kom frem til en løsning, som virker rigtig fedt, lige indtil jeg brugte TAB istedet for at klikke med musen for at flytte fokus... Og det er umuligt at rette til!
Men jeg skal nok tænke lidt videre!
Avatar billede Slettet bruger
07. december 2001 - 20:42 #7
Okay :) Lader spørgsmål et stå lidt endnu...
Avatar billede Slettet bruger
19. december 2001 - 22:31 #8
LuX
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