Javascript - Taille d'une sélection

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 !
Configuration: Windows XP
Firefox 3.0.11

8 réponses

  1. Contributeur
    TailleSelection = len (selection)
    0
    1. 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
      1. Contributeur
        et selection.lenght ??
        0
        1. undefined aussi !
          je vais continuer mes recherches sur google, je finirai bien par trouver ! je posterai ici quand je trouverai :)
          merci !
          0
          1. Contributeur
            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
            1. Contributeur
              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
              1. Contributeur
                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