Questo contenuto viene visualizzato in inglese perché non è ancora disponibile una versione tradotta nella lingua selezionata. Aiutaci a tradurre questo articolo!

This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Obsolete since Gecko 1.9 (Firefox 3)
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

The Range.compareNode() returns a constant indicating the position of the Node.

The possible values are:

Node starts before the Range
Node ends after the Range
Node starts before and ends after the Range
Node starts after and ends before the Range, i.e. the Node is completely selected by the Range.

Warning: This method has been removed from Gecko 1.9 and will not exist in future versions of Firefox, which was the only browser implementing it; you should switch to Range.compareBoundaryPoints() as soon as possible.

The following function can be used as replacement:

function rangeCompareNode(range, node) {
  var nodeRange = node.ownerDocument.createRange();
  try {
  catch (e) {
  var nodeIsBefore = range.compareBoundaryPoints(Range.START_TO_START, nodeRange) == 1;
  var 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;


returnValue = range.compareNode( referenceNode );


The Node to compare with the Range.


range = document.createRange();
returnValue = range.compareNode(document.getElementsByTagName("p").item(0));


This method is obsolete; you should use the W3C DOM Range.compareBoundaryPoints() method.


This method is not standard and therefore not part of any specification.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Chrome No support NoEdge ? Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android ?


No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

See also