Range: phương thức compareNode()
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.
Phương thức compareNode() của giao diện Range trả về một hằng số cho biết vị trí của Node.
Cú pháp
compareNode(referenceNode)
Tham số
referenceNode-
Nodecần so sánh vớiRange.
Giá trị trả về
Một hằng số cho biết vị trí của Node. Các giá trị có thể là:
NODE_BEFORE(0)-
Node bắt đầu trước Range
NODE_AFTER(1)-
Node kết thúc sau Range
NODE_BEFORE_AND_AFTER(2)-
Node bắt đầu trước và kết thúc sau Range
NODE_INSIDE(3)-
Node bắt đầu sau và kết thúc trước Range, tức là Node được Range chọn hoàn toàn.
Ví dụ
range = document.createRange();
range.selectNode(document.getElementsByTagName("div").item(0));
returnValue = range.compareNode(document.getElementsByTagName("p").item(0));
Ghi chú
Phương thức này không chuẩn. Có thể dùng hàm sau để thay thế:
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;
}
Thông số kỹ thuật
Phương thức này không chuẩn nên không thuộc bất kỳ đặc tả nào.