2010-09-10 11 views
2

Je cherche à créer un éditeur WYSIWYG, en utilisant jQuery comme un cadre à partir duquel je peux utiliser différentes méthodes pour faciliter la production.Alternatives à execCommand

J'ai en fait un éditeur de travail en ce moment, et il fonctionne bien. J'utilise un iFrame, et mets le designMode sur on et continue à partir de là. Cependant, il y a quelques choses qui me harcèlent.

Prenons comme exemple en changeant la famille police du texte sélectionné. En ce moment je suis en utilisant ceci:

editorDoc.execCommand('fontname', false, 'verdana'); 

... maintenant que fonctionne très bien: il montre le changement correctement dans le iFrame. Cependant, quand je regarde en fait le code (copier un code à l'intérieur du iFrame dans une entrée cachée puis l'afficherons) il produit

<font class="Apple-style-span" face="verdana">aasdf</font> 

Je me rends compte que la première classe d'Apple de style de vie est un webkit chose, ce qui n'a pas d'importance. La chose qui me harcèle est l'utilisation entière de <font>.

Recherche sur le execCommand il semble que ce n'est pas une norme, bien que la plupart des navigateurs le supportent. Il est vieux, donc je me demandais si quelqu'un avait entendu parler ou si vous connaissez une meilleure méthode de production du même effet, avec je l'espère un produit de code plus sémantique. Il serait également fantastique de ne pas se limiter à un iFrame, mais pour être en mesure d'utiliser un <textarea> à la place ..

Un grand merci à l'avance, Gareth

Edit: Pouvez-contentEditable me aider avec mon but de ne pas utiliser un iFrame?

+0

Oui, contentEditable peut vous aider. Mais vous devriez étudier les problèmes de compatibilité avec cela. Tenez également compte du fait que le CSS du document contenant l'éditeur sera appliqué au contenu de l'éditeur si vous n'utilisez pas d'iframe. – thorn

Répondre

1

Vous pouvez faire toutes les manipulations que vous voulez avec DOM iframe en utilisant des méthodes DOM habituelles. Regardez dans les sources de TinyMCE si vous avez besoin de quelques idées.

+0

D'accord, merci. Je ne suis pas sûr de la façon dont le DOM serait appliqué, donc je vais jeter un coup d'oeil dans TinyMCE. Merci. – GarethPrice