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 :

position de curseur dans div


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut position de curseur dans div
    Bonsoir à tous,

    voilà il y a de cela quelques jours je cherchais un moyen de récupérer la position de mon curseur sur un élément <div> avec un l'option contentedit ="true". Après d'interminables recherches, je suis tombé sur cette solution qui fonctionne à merveille :

    http://niichavo.wordpress.com/2009/0...rsor-position/

    Du moins elle fonctionne à merveille, à un détail près ! Lorsque j'intègre des tags html dans ma div éditable, la fonction ne me retourne plus la bonne position.

    Par exemple si je fais un essai sur "le chat est noir", cela va fonctionner, par contre sur "le <strong>chat</strong> est noir", ça ne va pas fonctionner car il détecte apparemment ma balise "<" comme un nouveau noeud.

    Est ce que l'un d'entre vous aurait une idée qui me permettrait de contourner cette limite.

    Je vous mets ci dessous le code de la fonction permettant de retourner la position du curseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    function getCursorPos() {
            var cursorPos;
            if (window.getSelection) {
                var selObj = window.getSelection();
                var selRange = selObj.getRangeAt(0);       
                cursorPos =  findNode(selObj.anchorNode.parentNode.childNodes, selObj.anchorNode) + selObj.anchorOffset;
            /* FIXME the following works wrong in Opera when the document is longer than 32767 chars */
            }
     
            else if (document.selection) {
                var range = document.selection.createRange();
                var bookmark = range.getBookmark();
                /* FIXME the following works wrong when the document is longer than 65535 chars */
                cursorPos = bookmark.charCodeAt(2) - 11; /* Undocumented function [3] */
            }
            return cursorPos;
        }
     
    function findNode(list, node) {
        for (var i = 0; i < list.length; i++) {
            if (list[i] == node) {            
                return i;
            }
        }
        return -1;
    }
    Par avance merci pour vos idées et conseils.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    une petite recherche avec offsetParent ...
    Sujet déja traité et je pense même qui doit y avoir un script dans la FAQ ou les contributions à ce propos...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Points : 45
    Points
    45
    Par défaut
    Merci SpaceFrog pour votre réponse.

    J'ai fait quelques recherches sur le forum avec le terme "offsetParent" mais je n'arrive pas à trouver "la chose" qui peut s'appliquer à mon cas de figure. Ce que je souhaite simplement c'est pouvoir lui passer des exclusions pour pas que ce dernier considère des balises comme <strong> comme étant des noeuds.

    Peux tu m'aiguiller un peu plus stp parce que là je galère vraiment avec cette fonction.

    Merci d'avance.

Discussions similaires

  1. Position du curseur dans un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/07/2005, 15h16
  2. [PDE] Récupérer position du curseur dans un éditeur
    Par simsky dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 05/07/2005, 15h50
  3. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 21h02
  4. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 16h35
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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