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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top