Range: compareNode() Methode
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.
Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.
Die Range.compareNode()
Methode gibt eine Konstante zurück, die die Position des Node
angibt.
Die möglichen Werte sind:
NODE_BEFORE
(0
)-
Der Node beginnt vor dem Range
NODE_AFTER
(1
)-
Der Node endet nach dem Range
NODE_BEFORE_AND_AFTER
(2
)-
Der Node beginnt vor und endet nach dem Range
NODE_INSIDE
(3
)-
Der Node beginnt nach dem und endet vor dem Range, d.h. der Node wird vollständig vom Range ausgewählt.
Warnung:
Diese Methode wurde entfernt aus Gecko 1.9 und wird in zukünftigen Versionen von Firefox, welches der einzige Browser war, der sie implementierte, nicht mehr existieren; Sie sollten so bald wie möglich zu Range.compareBoundaryPoints()
wechseln.
Die folgende Funktion kann als Ersatz verwendet werden:
function rangeCompareNode(range, node) {
const nodeRange = node.ownerDocument.createRange();
try {
nodeRange.selectNode(node);
} catch (e) {
nodeRange.selectNodeContents(node);
}
const nodeIsBefore =
range.compareBoundaryPoints(Range.START_TO_START, nodeRange) === 1;
const nodeIsAfter =
range.compareBoundaryPoints(Range.END_TO_END, nodeRange) === -1;
if (nodeIsBefore && !nodeIsAfter) return 0;
if (!nodeIsBefore && nodeIsAfter) return 1;
if (nodeIsBefore && nodeIsAfter) return 2;
return 3;
}
Syntax
compareNode(referenceNode)
Parameter
referenceNode
-
Der
Node
, der mit demRange
verglichen werden soll.
Rückgabewert
Eine Konstante, die die Position des Node
angibt.
Beispiele
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
returnValue = range.compareNode(document.getElementsByTagName("p").item(0));
Anmerkungen
Diese Methode ist veraltet; Sie sollten die W3C DOM Range.compareBoundaryPoints()
Methode verwenden.
Spezifikationen
Diese Methode ist nicht standardisiert und daher nicht Teil einer Spezifikation.
Browser-Kompatibilität
BCD tables only load in the browser