Range: compareNode() Methode

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.

Kein Standard: Diese Funktion ist nicht standardisiert und befindet sich nicht im Standardisierungsprozess. Verwenden Sie sie nicht auf Produktionsseiten, die auf das Web ausgerichtet sind: Sie wird nicht für alle Benutzer funktionieren. Außerdem kann es 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:

js
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

js
compareNode(referenceNode)

Parameter

referenceNode

Der Node, der mit dem Range verglichen werden soll.

Rückgabewert

Eine Konstante, die die Position des Node angibt.

Beispiele

js
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

Siehe auch