Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Bonjour,
Je cherche a créé un Wysiwyg et j'aimerai savoir s'il est possible dans mon iframe qui est ma zone de texte, de détecter à chaque emplacement de la barre de texte, la police, la couleur, la taille, si on est en gras, en italique ou en souligné.
Je cherche a le savoir pour pouvoir mettre les boutons de ma toolbar dans la position appoprié a chaque emplacement de la zone de texte. (comportement de Microsoft Word en gros).
D'autre part j'arrive a mettre en italique, en gras, etc... mon texte mais uniquement sur FF.
Je cherche a le faire aussi avec IE. Ce qui est marrant c'est que j'utilise execCommand, une commande du msdn qui à la base a été faite par Microsoft! Marrant non?
Merci
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Dernière modification par allen.shezar le 12 mai 2006, 17:46, modifié 2 fois.
allen.shezar a écrit :Je cherche a créé un Wysiwyg et j'aimerai savoir s'il est possible dans mon iframe qui est ma zone de texte, de détecter à chaque emplacement de la barre de texte, la police, la couleur, la taille, si on est en gras, en italique ou en souligné.
C'est chaud...
prenons le cas "gras".
Le curseur peut être dans un noeud <strong>, ou dans un noeud <b>, ou dans n'importe quel noeud avec un style css font-weight:bold. Il faut donc tester si il y a noeud parent strong ou b, et regarder la propriété getComputedStyle pour retrouver le style appliqué actuellement.
et ainsi de suite pour les autres caractéristiques.
Merci martin pour ta réponse, si toi tu me dis que c'est chaud je pense que je vais réfléchir avant de me lancer dans cette galère.
Sinon j'arrive toujours pas a appliquer le style sur IE...
J'ai aussi une nouvelle question? Qqn sait comment mettre des events correctement sur une iframe? Sur mon application ca ne marche pas, j'ai donc fait une page test que voici :
allen.shezar a écrit :Merci martin pour ta réponse, si toi tu me dis que c'est chaud je pense que je vais réfléchir avant de me lancer dans cette galère.
En même temps faut essayer , disons que c'est peut être pas le moment, fait déjà fonctionner l'essentiel, tu pourras toujours essayé de le rajouter ensuite...
allen.shezar a écrit :Qqn sait comment mettre des events correctement sur une iframe? Sur mon application ca ne marche pas, ...
en même temps j'avais implémenté des raccourcis clavier dans un éditeur wysiwyg, en interceptant donc les event clavier. Je sais plus comment. Je regarderai demain et t'en dirai un mot...
Bon donc, ta fonction OnClick.
Je ne pense pas que tu puisse appliqué un évènement onclick sur un object document. Il faut l'appliquer à l'objet window plutôt.
Ensuite tu ne peux pas l'appliquer tant que l'iframe n'est pas finie d'être chargée.
Donc, remplace :
Cependant comme ton iframe va être éditable, il faudra peut être faire attention à ne pas écraser le onclick natif, mais ajouter des actions.
Et donc plutôt que d'affecter directement la propriété onclick, passer par addEventListener, pour les navigateurs standards, ou attachEvent pour IE.
Merci Martin pr ton aide! Ce qui est marrant c'est qu'en faisant ce que tu m'as dit ca me le fait tourner sur FF mais plus sur IE mais bon...
J'ai trouvé une solution, mais est-ce la meilleure?
Ce que j'ai pu comprendre en testant c'est que: d'une part, FF doit avoir son iframe de charger, IE s'en fout. D'autre part, il est possible d'accrocher l'event sur document ou window sous FF mais pas sur IE(que sur le document). Troisièmement IE n'aime pas iframe.onload...vas savoir pourquoi! Voila! sinon j'ai pas bien compris l'article dont tu m'as donné le lien. Je vais pas pouvoir mettre d'event si g mon designMode? du moins sur FF il veut pas qd je mets le designMode. Peux tu regarder ce que ca donne en mettant un onmouseover au lieu d'un onclick? Bizarre le comportement que ca donne sur FF. C'est un probleme de vitesse d'execution du code?!?
Re:pour rire!
Essaie de mettre un designMode sans les events d'abord! Magie, ca marche plus qu'avec IE! Alors que je reprends la fonction iniEditor qui fonctionner avec les deux sous mon application! c'est celle qui est sur ce topic: http://geckozone.org/forum/viewtopic.php?t=38712
De toute facon tu la connais vu que c'est toi qui m'avais donné la réponse!
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
J'ai résolu le pb, fallait juste mettre aussi un onload pr le designMode. Facile ça! mais j'arrive pas a mettre d'event qd je switch le designMode à "On".
Pourtant j'ai fait ce que tu m'as dit!
Ca serait qd meme pas définitif le fait que l'on peut pas mettre d'event sur une iframe qd le designMode est a "On"? C'est bien ce que dit l'article dont tu m'as donné le lien, martin?
Tu pourrais me donner stp martin la solution que tu avais utiliser dans ton editeur wysiwyg ou qqn d'autre s'il a la solution ^^ . Merci d'avance.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Tu n'es pas sûr qu'un non-IE n'essayera pas de se faire passer pour IE (et je te garantis qu'il y en a)
Tu pourrais rater certains IE
Teste plutôt les méthodes fonctions directement (exemple : document.all si tu veux utiliser document.all, ici tu peux tester iframe.addEventListener ou peut-être même iniEditor (avec if(iniEditor))
Raté certain IE? dans tous les cas mon probleme est sur FF et pas sur IE mais bon g changé et je teste maintenant les methodes que j'appelle.Mais ca ne change rien. Le truc c que le designMode et les events fonctionne indépendament mais pas ensemble (sur FF)! Je comprends pas ce que tu veux dire par non-IE calimo. Moi je c sur koi je visualise! FF et IE ^^.
Je pense que pr les events il faudrait mettre le design mode qu'après que l'évènement (click&&focus) ai été trigger, et l'enlever que lorsque on a l'event blur le truc c que dans ce cas la l'event est trigger avant que le designMode soit a off. C'est un vrai casse tete! Si qqn a une solution, qu'il se fasse connaitre. Chui au bord de la depression.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
allen.shezar a écrit :
Tu pourrais me donner stp martin la solution que tu avais utiliser dans ton editeur wysiwyg ou qqn d'autre s'il a la solution ^^ . Merci d'avance.
sorti à la va-vite de mon code, c'était quelque chose du genre :