是否可以将Range对象设置为“向后选择”?

问题描述:

我创建了一个Range对象,然后将此范围添加到选择是否可以将Range对象设置为“向后选择”?

window.getSelection().addRange(myRange); 

如何设置选择方向? 我的意思是可以使用anchorNode,anchorOffset,focusNodefocusOffset选择的属性来检查的方向。

您可以在支持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); 
     } 
    } 
} 
+1

IE10不支持扩展()方法。 – Inez

+1

@ Inez:是的。他们忽略了[我的错误报告](https://connect.microsoft.com/IE/feedback/details/737106/implement-missing-extend-method-of-selection)。 –

+1

@TimDown我刚刚在Mircrosoft EDGE中测试了这种方法,它确实有效。可能,他们最终实现了extend()方法。 – Kersh