Surround auf einem Bereich über mehrere Tags (getRangeAt Problem?)
-
06-07-2019 - |
Frage
Ich habe ein Skript, das (glaube ich) muß surround verwenden, um den Auswahlbereich zu wickeln. so ermöglicht es tun mir etwas, anhängen und dann den Bereich wie die Auswahl zuweisen.
Ich glaube, ich habe das Problem verengt habe bis auf einen Missbrauch von getRangeAt, aber ich bin mir nicht ganz sicher, wie es zu korrigieren.
Hier ist das kurze Stück Code:
function getRangeObject(selectionObject) {
// Moz
if (selectionObject.getRangeAt) {
return selectionObject.getRangeAt(0);
}
Und hier ist Zeile 89, wo es einen Fehler bei mir wirft:
rangeObject.surroundContents(newNode);
Und natürlich, hier ist der Fehler:
Fehler: abgefangene Ausnahme: [Exception ... „Die Grenzpunkte ein Bereich erfüllt nicht spezifisch Anforderungen „Code: " 1" nsresult: „0x805c0001 (NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR)“ Standort: „ http://www.latentmotion.com/insertNode/index26.html Line: 89" ]
Wenn es hilfreich, die ganze Sache zu sehen, können Sie das Skript sehen können (bisher) hier: http://www.latentmotion.com/insertNode/index26.html
Und die Textauswahl Helfer, die ich weg von waren Quirksmode los war - was die Verwendung von mehreren Bereichen nicht Detail funktioniert, befindet sich hier .
Vielen Dank im Voraus für Ihre Hilfe.
Lösung
Ich denke, die Fehlermeldung auch das Problem beschreibt. Dieser Abschnitt der DOM Bereich spec beschreibt, was führt zu einer Ausnahme von einem Range
geworfen wird, wenn surroundContents
verwendet wird.