DOM: umschliessende Tags löschen (deleteSurroundContents)
Schorsch
- javascript
Guten Tag Forum
Ich habe
...ist <span style="font-weight: bold;">ein Satz</span>
bestehend...
Und möchte:
...ist ein Satz bestehend...
Das Ganze soll in Mozilla laufen. xxxx.outerHTML möchte ich nicht verwednen.
Was bisher geschah:
function deleteSurroundContents(nodeToDelete)
{
// Range erzeugen
var range = document.createRange();
// Bereich des Ranges festlegen
range.selectNode(nodeToDelete);
// Inhalt des Ranges auslesen*
var content = range.extractContents();
// Alles im Range löschen
range.insertNode(content);
// Inhalt des Ranges wieder einfügen
range.deleteContents();
}
*Inhalt des Ranges auslesen:
Nach meinen Erfahrungen wird hier der Inhalt _inklusive_ den <span>-Tags ausgelesen.
Folglich muss vor dem Auslesen den Range verkleinern:
// Inhalt des Ranges auslesen*
// Range Klonen
var clone = range.cloneRange();
// Range um ein Element erkleinern
clone.setStartAfter(range.startContainer);
clone.setEndBefore(range.endContainer);
var content = clone.extractContents();
Leider komme ich hier auch nicht weiter, da die Fehlermeldung:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMRange.setStartAfter]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame ::
erzeugt wird.
Wer hat mir einen Tipp, wie ich mein Probelm einfach zun zuverlässig lösen kann?
Danke im Voraus
Schorsch