Problématique des événements dans un <div> avec ContentEditable. [Résolu]

Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
28 septembre 2009
- - Dernière réponse : luckys333
Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
28 septembre 2009
- 28 sept. 2009 à 17:11
Bonjour à tous,

Je développe actuellement un editeur wysiwyg perso et je rencontre un problème avec les événements OnKeyPress et OnKeyUp.
Sur onClick, je capture, sans problème, l'objet Node sur lequel j'ai cliqué (à l'interieur de mon div conteneur).
Je souhaite faire de même avec OnKeyPress et OnKeyUp mais il semblerait que IE utilise l'évènement pour gérer la frappe des touches et il ne me renvoie que l'objet div (mon conteneur).
Comment, d'après vous, je pourrais faire pour intercepter ces événements ?
J'ai même essayer, en parcourant tous les n'uds de l'arbre, d'attacher l'événement à chaque balise mais le résultat est toujours le même.

Merci par avance de votre aide.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
28 septembre 2009
3
Merci
Bonjour,

J'ai enfin trouvé !!! si cela peux servir à quelqu'un, j'obtiens l'objet en cours d'édition par :
var element = document.selection.createRange().parentElement();

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 143 internautes nous ont dit merci ce mois-ci

Commenter la réponse de luckys333
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
Bonjour,

navré, pas compris votre souci !

ce genre d'évènement réagit de la même
manière avec FF, IE et les autres
n'est-ce pas un souci de propagation ?
tout évènement sur un objet est aussi
déclenché sur leS parentS
peut-être ne faites-vous pas le
nécessaire pour l'empêcher avec IE ?
( différent de FF pour le coup )

div contenteditable ? je pensais que
c'était exclusif IE ça ? ça ne l'est plus ?

dans mon wysiwyg qu'il est à moi, j'utilise
un iframe exemple ici

Cordialement [mon Site] [M'écrire] Bul
Commenter la réponse de Bul3
Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
28 septembre 2009
0
Merci
Merci pour ta réponse.
Congratulation pour ton wysiwyg, c'est un très joli travail (résultat++) avec un code bien structuré. Malgré toutes mes recherches de ces dernières semaines, je ne suis jamais tombé sur ton éditeur. Et pourtant j'ai toujours trouvé ce que je chercher sur le Net.

L'attribut contentEdiable est reconnu aussi sous FF malgré tout ce que j'ai pus lire sur le Net, chez moi cela marche? Et FF offre la possibilité de redimensionné tableaux, cellules et ++. Ma version : (Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.14) Gecko/2009082707 Firefox/3.0.14) . Mais je n'en demandai pas tant.

Pour mon problème, je vais essayer d'être plus clair?

J'ai en bas de mon éditeur, un volet, qui d'une manière contextuelle affiche les attributs de l'élément en cours d'édition. Un peux comme dans DreamWeaver?

Sur OnClick, je récupère l'objet Node et ensuite je peux travailler sur cette base. J'affiche mon formulaire d'édition correspondant a la balise en cours avec tous les attributs possible y compris les classes de style prédéfinis ou utilisateurs etc?

Mais sur OnKeyPress et OnKeyUp, le seul objet Node que je récupere, c'est mon div (Conteneur de mon wysiwyg). J'ai même essayer de stopper la propagation de l'évènement par :
var ev = ev || window.event;
var element = ev.target || ev.srcElement;
if (ev.stopPropagation){event.stopPropagation();}
event.cancelBubble = true;

Effectivement la propagation est stoppée puisque le caractère n'est pas affiché dans mon éditeur? Mais (element), me retourne toujours mon div (Conteneur de mon wysiwyg).

Cordialement.
Commenter la réponse de luckys333