DOM:range.compareNode
From MDC
Contents |
[edit] Summary
Obsolete
Returns a constant (see notes).
[edit] Syntax
returnValue = range.compareNode( referenceNode );
[edit] Parameters
- referenceNode
- The
Nodeto compare with theRange.
[edit] Example
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
returnValue = range.compareNode(document.getElementsByTagName("p").item(0));
[edit] Notes
This method is obsolete; you should use the W3C DOM Range methods (see compareBoundaryPoints()).
Warning: This method has been removed from Gecko 1.9 and will not exist in future versions of Firefox; you should switch to
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;
}
The above method returns one of this constants:
- 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.
[edit] Specification
This method is not part of specification.