Avatar billede kak Nybegynder
18. september 2002 - 15:53 Der er 6 kommentarer og
1 løsning

document.selection.createRange();

Jeg har følgende i en funktion:
var range = document.selection.createRange();
range.text = txtStart + range.text + txtEnd;

Jeg bruger det til at editere teksten i et textarea, og det virker fint, så længe jeg markerer noget tekst før jeg klikker på knappen der kalder funktionen.
Men har jeg ikke markeret noget i mit textarea, tilføjes variablerne txtStart og txtEnd i stedet på min knap.

Hvordan kan jeg tage højde for det? Kan jeg evt. sørge for, at koden bliver sat ind der hvor markøren er i mit textarea, eller evt. til sidst i det? Eller kan jeg teste om der er markeret noget?

(jeg ved godt, at jeg kan bruge execCommand i et iframe i stedet, men i dette tilfælde SKAL jeg bruge et textarea)
Avatar billede limemedia Nybegynder
18. september 2002 - 15:58 #1
utestet

var range = document.selection.createRange();
if (range.text != "") range.text = txtStart + range.text + txtEnd;
Avatar billede kak Nybegynder
18. september 2002 - 16:06 #2
Virker desværre ikke.
Avatar billede limemedia Nybegynder
18. september 2002 - 16:07 #3
prøv at lave en alert på din range.text og identificer hvordan den ser ud når du ikke har markeret noget tekst.
Avatar billede limemedia Nybegynder
18. september 2002 - 16:09 #4
har du evt noget kode vi må lege med ?
Avatar billede kak Nybegynder
18. september 2002 - 18:53 #5
Koden er her...

function chg(txtStart,txtEnd) {
    var range = document.selection.createRange();
    range.text = txtStart + range.text + txtEnd;
}

Og knappen...
<input type="button" value="Fed" onClick="chg('<B>','</B>');">

Og mit textarea...
<form name="minForm">
<textarea name="mitTextArea" cols="50" rows="10"></textarea>
</form>
Avatar billede limemedia Nybegynder
18. september 2002 - 19:24 #6
virker for mig
--

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
<!--
    function chg(txtStart,txtEnd) {
        var range = document.selection.createRange();
        if (range.text.length > 0) range.text = txtStart + range.text + txtEnd;
    }
//-->
</script>
</head>

<body>

<form name="minForm">
<input type="button" value="Fed" onClick="chg('<B>','</B>');">
<textarea name="mitTextArea" cols="50" rows="10"></textarea>
</form>


</body>
</html>
Avatar billede kak Nybegynder
18. september 2002 - 20:06 #7
Perfekt! Lige hvad jeg skulle bruge.
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