【问题标题】:window.getSelection(), how do you tell if the anchor node comes before the focus node?window.getSelection(),如何判断锚节点是否在焦点节点之前?
【发布时间】:2011-11-07 15:36:32
【问题描述】:

我只想允许从左到右进行选择,因此锚节点将始终是 DOM 树中的第一个节点(相对于焦点节点)。

有没有简单的方法来测试锚节点是否在焦点节点之前?

【问题讨论】:

  • 不知道为什么这会被否决。我认为这是一个不错的问题。

标签: javascript jquery dom selection dom-selection


【解决方案1】:

这里有一个简单的方法,它使用了这样一个事实:将 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多