Javascript: detecter la selection d'un text

Fermé
pazz - 18 mars 2009 à 15:36
 lulu - 9 févr. 2010 à 15:15
Bonjour,

je cherche a detecter la selection d'un texte via javascript, mais je ne sais vraiment pas
comment mi prendre, ce serait pour créé un mini wisywig ou il sera possible de metre en gras italique etc....

merci

Pazz

5 réponses

Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 283
18 mars 2009 à 15:44
Une petite recherche (javascript tester selection" sur google qui finit par donner : http://www.journaldunet.com/...

Je cite :

if (document.getSelection) sel = document.getSelection();
else if (document.selection) sel = document.selection.createRange().text;
else return;
alert("Votre sélection: "+sel);
3
Merci sa fonctionne parfaitement.

ps: j'ai du oublier mes lunettes pasque j'ai rien trouver a par une solution microsoft qui n'était pas terrible

Pazz
0
J'ai encore un dernier petit souci.

pour mettre en gras je procède de cette manière:

if (document.getSelection) sel = document.getSelection();
else if (document.selection) sel = document.selection.createRange().text;
else return;
document.selection.createRange().text="<b>"+sel+"</b>";


le problème est qu'il me transforme les "<" en "<" ce qui m'affiche
<b>blablabla</b> au lieu de blablabla

comment pourais-je éviter sa ? j'ai pensé a la fonction replace, mais je trouve sa un peut lourd.

merci

Pazz
0
le deusième "<" est egale a "&.l.t" sans les point

pazz
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour,
je sais que le sujet est vieux mais peut être que l'on peut m'aider j'ai le même que toi et j'ai insérer mon scirpt:



function gras()
{
if (document.getSelection)
sel = document.getSelection();
else if (document.selection)
sel = document.selection.createRange().text;
else return;

alert("Votre sélection: "+sel);
}

dans ce cas présent l'alert fonctionne très bien mais des que je rajoute après else return;

document.selection.createRange().text="<<b>>"+sel+"<</b>>";

plus rien ne fonctionne il me dit que document.selection.createRange().text est undefined

comment faire ??
0
j'ai mis un chevron de trop
0
sous IE,

onclick="document.execCommand('underline')";
dans les commandes du bouton Souligner.
0