Range.compareNode()
Non-standard
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
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_BEFORE
(0
)- Node starts before the Range
NODE_AFTER
(1
)- Node ends after the Range
NODE_BEFORE_AND_AFTER
(2
)- Node starts before and ends after the Range
NODE_INSIDE
(3
)- Node starts after and ends before the Range, i.e. the Node is completely selected by the Range.
compareBoundaryPoints()
as soon as possible.The following function can be used as replacement:
function rangeCompareNode(range, node) { var nodeRange = node.ownerDocument.createRange(); try { nodeRange.selectNode(node); } catch (e) { nodeRange.selectNodeContents(node); } 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; }
Syntax
returnValue = range.compareNode( referenceNode );
Parameters
- referenceNode
- The
Node
to compare with theRange
.
Example
range = document.createRange(); range.selectNode(document.getElementsByTagName("div").item(0)); returnValue = range.compareNode(document.getElementsByTagName("p").item(0));
Notes
This method is obsolete; you should use the W3C DOM Range methods (see compareBoundaryPoints()
).
Specification
This method is not standard and therefore not part of any specification.
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic Support | Not supported | 1.0 (1.7 or earlier) Removed in 3.0 (1.9) |
Not supported | Not supported | Not supported |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | Not supported | 1.0 (1.0) Removed in 1.0 (1.9) |
Not supported | Not supported | Not supported |
See also
License
© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/api/range/comparenode