Hallo,
Ik heb een function gevonden die de cursorpositie geeft.
Dit werkt prima. Als je tekst typt, zie je in het textveld dat de cursorpositie steeds vergroot: 1,2,3,4,... enz.
Behalve als je heel snel typt. Dan geeft hij sommige posities dubbel, vb: 1,2,3,3,5,6,6,8,...
Ik vermoed dat dit komt omdat een tweede oproep van de functie reeds start als de eerste nog bezig is.
Is dit zo, en zo ja, hoe kan dit verholpen worden?
Hieronder de volledige testpagina. Typ maar eens heel snel willekeurige tekens in de textarea, en je zult zien wat ik bedoel.
Bedankt voor alle hulp.
Sam.
Ik heb een function gevonden die de cursorpositie geeft.
Dit werkt prima. Als je tekst typt, zie je in het textveld dat de cursorpositie steeds vergroot: 1,2,3,4,... enz.
Behalve als je heel snel typt. Dan geeft hij sommige posities dubbel, vb: 1,2,3,3,5,6,6,8,...
Ik vermoed dat dit komt omdat een tweede oproep van de functie reeds start als de eerste nog bezig is.
Is dit zo, en zo ja, hoe kan dit verholpen worden?
Hieronder de volledige testpagina. Typ maar eens heel snel willekeurige tekens in de textarea, en je zult zien wat ik bedoel.
Bedankt voor alle hulp.
Sam.
Code:
<html>
<head>
</head>
<body>
<script type="text/javascript" language="JavaScript">
function doGetCaretPosition (ctrl) {
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
document.all.Pos.value = document.all.Pos.value + ',' + CaretPos ;
}
</script>
<form>
<textarea name="veld" cols="50" rows="3" wrap="virtual" onkeyup="doGetCaretPosition(this)"></textarea><BR>
<input type ="text" name="Pos" size="130">
</form>
</body>
</html>