IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

récupérer le "start" de la sélection du texte


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par défaut récupérer le "start" de la sélection du texte
    Bonsoir,

    Je tente d'implémenter une fonction "couper et remplacer par quelque chose" en JavaScript dans un DIV éditable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="text" contenteditable="true"></div>
    Pour remplacer le texte sélectionné par quelque chose, il faut que je récupère la position de la sélection du texte pour identifier où couper.
    En fait, je veux couper le morceau de texte et remplacer mon DIV complet par 3 autres DIV: 1 DIV avant, 1 DIV quelque chose, 1 DIV après, sans le texte coupé bien entendu.

    Ma première idée : indexOf mais il trouve que la première occurrence dans la chaîne de mon DIV.

    Par exemple:
    Clipboard begin
    Clipboard end

    si je sélectionne avec la souris le second mot "Clipboard" alors indexOf trouve que la première occurrence.

    Voyez plutôt le bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			var selText = document.selection.createRange().text;
    			var pos = textObj.innerText.indexOf(selText);
    ce bout de code fait une erreur en sélectionnant le premier mot au lieu du second.

    La solution, c'est de récupérer la position "start" dans le texte.

    Ma question : comment faire en JavaScript (sous IE uniquement) pour récupérer la position "start" dans le texte du mot sélectionné ?

    Merci d'avance pour vos réponses.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par défaut [RESOLU] Problème résolu
    Bonsoir,

    Sous IE9, selectionStart est une nouvelle propriété. Et pour IE8 ?

    J'ai résolu le problème en cherchant sur google et j'ai trouvé un lien qui m'explique comment faire.

    http://the-stickman.com/web-developm...rnet-explorer/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    			var range = document.selection.createRange();
    			var sr = range.duplicate();
    			sr.moveToElementText(textObj);
    			sr.setEndPoint('EndToEnd', range);
    			var selectionStart = sr.text.length - range.text.length;
    et cela m'a suffit pour régler ma problématique.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo