• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

surroundContents-Fehler bei unvollständigen Tags

blabla333

Mitglied
Mit folgendem Code verändere ich den Inhalt einer Selektion aus einem Div-Container. Ich habe das mit surroundContents gelöst, da ich das Ganze nur so ans Laufen bringen konnte...

Code:
var range = window.getSelection().getRangeAt(0).cloneRange();
var container = document.createElement("mark");
range.surroundContents(container);
html = container.innerHTML;
$("mark").replaceWith('<b>' + html + '</b>');

Soweit so gut.
Allerdings gibt es Schwierigkeiten, sobald ich eine Text selektiere, der nicht vollständig mit Tags eingefasst ist:

HTML:
<b>Irgendein</b> Inhalt und ein <b>fett markierter</b> Text

Markiere ich nun "ein fett" gibt es einen "InvalidStateError". Das hat - wenn ich das richtig verstanden habe - mit surroundContents() zu tun, welches immer einen vollständigen Tag benötigt.
Jetzt soll in meinem Beispiel hier aus dem markierten Bereich das <b> entfernt werden und an den Anfang der Selektion gesetzt werden, damit die fett-Markierung erweitert wird, so dass am Ende folgendes daraus wird:

HTML:
<b>Irgendein</b> Inhalt und <b>ein fett markierter</b> Text

Entsprechendes natürlich wenn "markierter Text" ausgewählt wird...
 
Zurück
Oben