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 :

Positionnement du curseur. NicEdit


Sujet :

JavaScript

  1. #1
    Membre �clair� Avatar de Snooky68
    Homme Profil pro
    D�veloppeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur Web/Python/PHP
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Par d�faut Positionnement du curseur. NicEdit
    Bonjour � tous!

    Voil� mon probl�me, comme �diteur wysiwyg j'utilise NicEdit! Et j'ai trouv� comment limiter le nombre de caract�re dans mon champs. Le probl�me c'est que sur chaque mise � jour du champs (quand le nombre max de caract�re est atteins) le curseur est automatiquement repositionner au d�but du champs! Se qui est assez emb�tant!
    Pour info il semblerais que mon champs �ditable cr�er par NicEdit est une div!

    Question: Comment faire pour repositionner le curseur � la fin du texte en javascript?

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    46
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 46
    Par d�faut
    Tu peux le faire � l'aide des objets Range et TextRange, mais ils ne disposent pas des m�mes m�thodes et propri�t�s chez IE et Gecko.
    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
     
    //pour invoquer un objet Range à partir d'une sélection texte :
    //-pour IE :
    var myRange=document.selection.createRange();
    //-pour les autres : 
    var myCont=document.getElementById('maDiv');
    var mySelect=myCont.getSelection();
    var myRange=mySelect.getRangeAt(0);
     
    //pour placer le range : attention, il faut un noeud texte
    var myLastChild=myCont.lastChild;//Attention, il faut trouver le dernier noeud texte, lastChild trouve le dernier noeud, pas forcément type text !
    //pour IE :
    myRange.moveToElementText(myLastChild);
    myRange.collapse(false);
    //pour les autres : 
    myRange.setStart(myLastChild,0);
    myRange.setEnd(myLastChild,myLastChild.nodeValue.length-1);
    myRange.collapse(false);
     
    //pour faire une sélection utilisateur sur le range déplacé :
    //pour IE :
    myRange.select();
    //pour les autres :
    mySelect.removeAllRanges();
    mySelect.addRange(myRange);
    En esp�rant t'avoir aid�.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    46
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 46
    Par d�faut
    Ha, bien s�r, les liens qui te permettront d'approfondir le sujet :
    Pour IE : http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
    Pour les autres : https://developer.mozilla.org/en/DOM/range

  4. #4
    Membre �clair� Avatar de Snooky68
    Homme Profil pro
    D�veloppeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur Web/Python/PHP
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Par d�faut
    Salut!

    Merci beaucoup pour tes r�ponses! Mais comme tu la pr�cis� il faut un noeud texte, et j'ai une div!
    Donc sa na pas march�!

    J'ai d�couvert que se que je cherchais n'existe pas en faite! Donc j'ai contourn� le probl�me! (j'utilise un �diteur bbcode avec une pr�visualisation en temps r�el!)

    Bref... r�solut...
    Merci

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    46
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 46
    Par d�faut
    Il faut un noeud texte, et dans ton cas le dernier noeud texte de la div, non?
    Avec un truc de ce genre, que je ne pensais pas devoir pr�ciser :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var div=document.getElementById('madiv');
    var last=div.lastChild;
    while(last && last!=div && last.nodeType!=3){
    if(last.lastChild){
    last=last.lastChild;
    }else if(last.previousSibling){
    last=last.previousSibling;
    }else{
    while(last && last!=div){
    last=last.parentNode;
    }
    }
    Ce que tu cherches existe, mais c'est tr�s verbeux et complexe d'utiliser les textRange, donc on pr�f�re g�n�ralement utiliser la fameuse execCommand, dont tous les �diteurs WYSIWYG sont issus, et qui produit un code pas g�nial.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. TDBGrid + TDBNavigator + Insert => Positionner le curseur
    Par Drooxy dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 02/03/2005, 19h24
  2. R�ponses: 25
    Dernier message: 17/02/2005, 18h02
  3. Probl�me quant au positionnement du curseur
    Par hams dans le forum x86 16-bits
    R�ponses: 2
    Dernier message: 21/12/2004, 22h01
  4. R�ponses: 6
    Dernier message: 06/05/2004, 09h05
  5. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    R�ponses: 2
    Dernier message: 16/05/2003, 17h48

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