IE JS:Wie verwende ich pasteHTML(), wenn Selection.type == 'None' ist?
-
21-09-2019 - |
Frage
Ich versuche, dem Benutzer das Bearbeiten eines inhaltsbearbeitbaren Div zu ermöglichen, stelle jedoch fest, dass ich pasteHTML nur verwenden kann, wenn Text ausgewählt ist.
Ich dachte, document.selection.createRange() würde eine gültige Auswahl mit der Länge Null zurückgeben (d. h.eine Position), aber leider nein.
Ich hatte wirklich Mühe, eine Lösung für dieses Problem zu finden, die keine Iframes beinhaltet (derzeit keine Option).
Anregungen/Ideen/Fragen sind herzlich willkommen.
Lösung
Stellen Sie sicher, dass der Schwerpunkt liegt auf der editierbaren div bevor die TextRange
aus der Auswahl erstellen:
var div = document.getElementById("your_div");
div.focus();
document.selection.createRange().pasteHTML("<b>PASTED</b>");
Andere Tipps
Sie könnten einen Formulartextbereich verwenden.Dies ist einfach und browserübergreifend, aber Sie wissen nicht, inwieweit Ihr Stil eingeschränkt ist oder ob die Verwendung eines Formulars oder Formularelements für Ihr Problem geeignet ist.