J'ai un CMS personnalisé qui utilise CKEditor * (FCKEditor v3) pour éditer le contenu. J'utilise également le plugin jQuery Validation pour vérifier tous les champs d'erreur avant la soumission basée sur AJAX. J'utilise la fonction serialize() pour transmettre les données au backend PHP.Utilisation de jQuery pour récupérer le contenu de l'iframe de CKEditor
Le problème est que serialize parvient à saisir tous les champs correctement, à l'exception du contenu réel tapé dans CKEditor. Comme tous les autres éditeurs WYSIWYG, celui-ci recouvre également un iframe sur une zone de texte existante. Et sérialiser ignore l'iframe et ne regarde que dans la zone de texte pour le contenu, ce qui, bien sûr, ne trouve pas, renvoyant ainsi un corps de contenu vide.
Mon approche de c'est de créer un crochet sur le onchange événement de CKEditor et mettre à jour en même temps que la zone de texte (CKEDITOR.instances.[textboxname].getData()
renvoie le contenu) ou d'un autre champ caché avec les modifications apportées dans l'éditeur.
Cependant, étant donné que CKEditor est encore en phase bêta et qu'il manque cruellement de documentation, je ne trouve pas d'appel d'API approprié qui me permettra de le faire.
Quelqu'un a-t-il une idée sur la façon de procéder?
J'ai compris jusqu'à saisir le contenu de l'iframe: $ ('#cke_contents_body iframe') .contents(). Find ('body') .html() ... l'élément directement adressable le plus proche étant un td avec l'identifiant 'cke_contents_body'. CKEditor enveloppe l'iframe avec ce td. –
Encore à faire .. un moyen de mettre à jour automatiquement la zone de texte avec les données en accrochant sur un événement de changement de CKEditor. Des idées? N'importe qui? –
Nouvelle version de CKEditor a résolu ce problème – Ivan