我只想允许从左到右进行选择,因此 anchor 节点始终是 DOM 树中的第一个节点(相对于焦点节点)。
有没有一种简单的方法来测试 anchor 节点是否在焦点节点之前?
最佳答案
这是一种简单的方法,它利用了将 DOM 范围的末尾设置在文档中比范围开始更早的位置会折叠该范围这一事实。我认为这会在 Firefox 2 中中断,它在处理这个问题时有一个错误,但该浏览器的用户数量很少。
function isSelectionBackwards() {
var backwards = false;
if (window.getSelection) {
var sel = window.getSelection();
if (!sel.isCollapsed) {
var range = document.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
backwards = range.collapsed;
range.detach();
}
}
return backwards;
}
关于javascript - window.getSelection(),如何判断 anchor 节点是否在焦点节点之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038683/