Javascript - Taille d'une sélection

Fermé
Fillule - 8 juil. 2009 à 19:05
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 10 juil. 2009 à 17:05
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 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
8 juil. 2009 à 22:46
TailleSelection = len (selection)
0
Fillule Messages postés 4 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 20 juillet 2009
9 juil. 2009 à 09:08
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 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
9 juil. 2009 à 14:17
et selection.lenght ??
0
Fillule Messages postés 4 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 20 juillet 2009
9 juil. 2009 à 19:23
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 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
10 juil. 2009 à 13:57
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 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
10 juil. 2009 à 16:46
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 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
10 juil. 2009 à 16:57
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 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
10 juil. 2009 à 17:05
0