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

8 réponses

  1. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    TailleSelection = len (selection)
    0
  2. 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
  3. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    et selection.lenght ??
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. 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