IE JS: comment utiliser pasteHTML () lorsque selection.type == 'None'?
-
21-09-2019 - |
Question
Je suis en train de permettre à l'utilisateur d'éditer un contenteditable div, mais je recherche que je ne peux pas utiliser pasteHTML moins qu'il y ait un texte sélectionné.
Je pensais document.selection.createRange () retournerait une sélection de longueur nulle valide (à savoir une position), mais hélas pas.
J'ai vraiment eu du mal à trouver une solution à ce qui ne concerne pas les iframes (pas une option à l'heure actuelle).
Toutes les suggestions / idées / questions les bienvenus.
La solution
Assurez-vous que l'accent est mis sur la div éditable avant de créer le TextRange
de la sélection:
var div = document.getElementById("your_div");
div.focus();
document.selection.createRange().pasteHTML("<b>PASTED</b>");
Autres conseils
Vous pouvez utiliser un formulaire textarea. C'est simple et multi-navigateur, mais ne savent pas dans quelle mesure votre style est limité ou si l'utilisation d'un élément de forme ou la forme est adaptée à votre question.