Forum-webmaster
Technique - programmation => Javascript / DOM / Ajax => Message commencé par: bul le le 05-11-2003 a 10:35:08

Titre: adresse curseur
Posté par: bul le le 05-11-2003 a 10:35:08

bonjour à tous
peut-on connaître l'adresse du curseur dans
une zone <input type=textarea ... > par exemple ?
j'ai développé en javascript un petit éditeur de
texte et je voudrais insérer les fichiers non pas
en fin ou début du texte mais là où est la curseur.
merci d'avance


Titre: Re:adresse curseur
Posté par: Trantsiss le le 10-11-2003 a 09:09:33

Mmùh si j'ai bien compris ce que tu demandes, cela rejoins la question que j'avais déjà posée sur ce forum; à savoir insérer du texte à l'endroit où se trouve le curseur.
Je suis tjrs en train de chercher à quoi correspond las fonctions, mais en tout cas ça marche.

cette fonction permet de copier ce qu'il y a dans ton texte area dès que tu écris

Code:
function storeCaret(text) {
   if (text.createTextRange) {
      text.caretPos = document.selection.createRange().duplicate();
   }
}


celle-ci sert à rajouter un texte choisi, si tu surligne un mot de ton texte il sera remplacé par le nouveau


Code:
function ReplaceText(Mot)
{
if (document.annonce.texte.createTextRange)
{
var text;
document.annonce.texte.focus(document.annonce.texte.caretPos);
document.annonce.texte.caretPos = document.selection.createRange().duplicate();
if(document.annonce.texte.caretPos.text.length>0)
{
document.annonce.texte.caretPos.text = ' '+Mot;
}
else
{
document.annonce.texte.caretPos.text = ' '+Mot;
}
}
else document.annonce.texte.value += ' '+Mot;
}


Enfin voici le code à mettre dans le texte area, note que mon form s'appel annonce et que mon textarea s'appel texte; donc si tu changes les noms pense à les changer dans les fonctions ;)

Code:
<form method=post name=annonce action=formann.php>
<textarea cols=45 rows=15 onkeyup=javascript:storeCaret(this); onclick=javascript:storeCaret(this); onchange=javascript:storeCaret(this); name=texte></textarea>

Titre: Re:adresse curseur
Posté par: bul le le 10-11-2003 a 10:38:04

j'utilise cela :
function caradr (txt)   
{ if (txt.createTextRange)
txt.adrcurs =
document.selection.createRange().duplicate();   }
function ajouter(zone)
{if (saisie.createTextRange && saisie.adrcurs)
{ var adrcurs = saisie.adrcurs;
adrcurs.text =adrcurs.text.charAt(adrcurs.text.length - 1) == ' ' ? zone + ' ' : zone; }
else { saisie.value = zone; } }
...
<Textarea name=saisie id=saisie
onselect="caradr(this);" onclick="caradr(this);"
onkeyup="caradr(this);" ... >

qui doit être la même chose et
doit avoir la même origine
effectivement on insére là où est le curseur
et c'est déjà pas mal,
mais moi je voudrais réellement l'adresse, la postion
du curseur
zone = 1234567890
1234567890...
|
curseur ici => 14 ou 16 si crlf ligne 1
car je veux retenir "1234567890crlf1234"
ou "567890..."

Titre: Re:adresse curseur
Posté par: Trantsiss le le 10-11-2003 a 10:50:09

Ok je vois le genre, mais là je ne sais pas comment obtenir ^__^;

Donc je ne pourrais pas t'aider désolé.

Titre: Re:adresse curseur
Posté par: bul le le 02-01-2004 a 14:48:14

finalement j'ai une bidouille (pas belle, je dirais
même horrible, mais qui marche) pour faire.
si interessé, contactez-moi


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.