【问题标题】:Is it possible to set Range object as "backwards selection"?是否可以将 Range 对象设置为“向后选择”?
【发布时间】:2014-05-10 05:26:59
【问题描述】:

我创建一个 Range 对象,然后将此 Range 添加到选择中

window.getSelection ().addRange(myRange);

如何设置选择方向? 我的意思是可以使用选择的anchorNodeanchorOffsetfocusNodefocusOffset 属性检查的方向。

【问题讨论】:

    标签: javascript selection range


    【解决方案1】:

    您可以在支持Selection 对象的extend() (MDN) 方法的浏览器上执行此操作。 Mozilla、WebKit 和 Opera 支持它; IE 没有达到并包括版本 11。extend() 已添加到 HTML Editing APIs spec,因此它可能还出现在 IE 中。

    这是一个示例函数:

    function selectRangeBackwards(range) {
        if (typeof window.getSelection != "undefined") {
            var sel = window.getSelection();
            if (typeof sel.extend != "undefined") {
                var endRange = range.cloneRange();
                endRange.collapse(false);
                sel.removeAllRanges();
                sel.addRange(endRange);
                sel.extend(range.startContainer, range.startOffset);
            }
        }
    }
    

    【讨论】:

    • IE10 不支持 extend() 方法。
    • @Inez:是的。他们被my bug report忽略了。
    • @TimDown 我刚刚在 Mircrosoft EDGE 中测试了这种方法,它确实有效。大概,他们终于实现了 extend() 方法。
    猜你喜欢
    • 2011-03-03
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    相关资源
    最近更新 更多