Javascript - Taille d'une sélection

Fillule -  
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Pour commencer, voici une partie de mon code qui me permet d'obtenir du texte sélectionné dans une page :
selection = document.getSelection();
range = selection.getRangeAt(0);
var offset = range.startOffset;
var container = range.startContainer;

Le problème c'est que je n'arrive pas à calculer la longueur du texte sélectionné !
Y a t-il une fonction qui existe pour ça ? (j'invente, mais du genre rangeSize(), selectionSize() ?)
Sinon quelle est la méthode à suivre pour l'obtenir ?

Je vous remercie d'avance !

8 réponses

jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
 
TailleSelection = len (selection)
0
Fillule Messages postés 5 Statut Membre
 
euh non ça ne marche pas du tout
j'ai également essayé avec taille = len(selection.text)
est ce que ça peut venir de mon navigateur ?
0
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
 
et selection.lenght ??
0
Fillule Messages postés 5 Statut Membre
 
undefined aussi !
je vais continuer mes recherches sur google, je finirai bien par trouver ! je posterai ici quand je trouverai :)
merci !
0

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

Posez votre question
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Bonjour,

Si je puis me permettre, tu obtiens "undefined" parce que ta variable 'selection' n'est pas ce que tu crois être.
1- Qu'est ce que c'est que ton 'document.getSelection()' ? C'est sensé te retourner quoi exactement ? Une valeur, un object de type 'text' ?

Ton problème vient donc plus de la première ligne :
selection = document.getSelection();


Essai plutôt un truc du genre sélection par identifiant.
Par exemple si tu as déclaré ton champ 'selection' de la manière suivante :
<input type='text' id='selection' value=''/>


Alors :

var selectObj = document.getElementById('selection');
if ( selectObj != null ){
   var selection = selectObj.value;
   alert('Longueur du champ = '+selection.length);
}

0
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
 
kij_82, la ca te donne le nb de caractere total dans ton champs texte, or, je pense qu il voudrais savoir conbien de caracteres de ce champ texte sont sélectionnés.. d où, je suppose, le range()...

Autant je suis d accord avec toi sur le code pour le champ entier, mais j avoue que je peche concernantt la selection...
0
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ha effectivement j'ai lu trop vite et mal compris le problème ^^

Mum... faut réfléchir mais là j'avoue que je pars en vacances, bon courage ^^
0
jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
 
0