Bon en fait même comme ça ça ne marche pas; je m'explique:
FIrefox pour les éditeurs de texte prévoit la méthode midas http://www.mozilla.org/editor/midas-spec.html.
Ce n'est pas du tout au point. D'un part ce n'est pas standardisé , editableDocument.execCommand("Bold", false, null); par exemple donne des résultats différent pour chaque navigateur testé.
De plus c'est lourdement buggué. inserthtml qui m'aurais permis de crée mes propres balises marche a moitié sous chrome , et pas du tout sous Firefox.
Je me suis replié donc sur une autre solution:
sel.getRangeAt(0).surroundContents(el);
Signifiant: entourer la première gamme(getRangeAt(0)) de la sélection(sel) par un balise (contenue dans la variable el).
Cela marche beaucoup mieux et me donne la possibilité de créer mes propres balises.
Cependant çà na marche que si je sélectionne du texte. Par contre je n'arrive pas a préciser qu'a un endroit précis du texte, la suite de ce que j’écrirais sera contenu dans une balise que j'aurais choisis a l'avance.
Avec:
sel.getRangeAt(0).insertNode(el);
Je peux crée une balise ouvrante et fermante a l'endroit ou j'ai le curseur , mais ce que j’écrirais se trouveras automatiquement derrière le curseur
A partir de la virgule, le texte aurait du se trouver entre ces balise <strong></strong>.
Donc ma question actuelle:
Comment placer le curseur a un endroit précis du texte (entre les dernières balises crées donc) dans un contenteditable (pas un textarea)?
Merci de votre aide, si j'obtiens des réponses satisfaisante je créerais un mini-tuto, pour l'instant introuvable sur le web.
Partager