是否可以将Range对象设置为“向后选择”?
问题描述:
我创建了一个Range对象,然后将此范围添加到选择是否可以将Range对象设置为“向后选择”?
window.getSelection().addRange(myRange);
如何设置选择方向? 我的意思是可以使用anchorNode
,anchorOffset
,focusNode
和focusOffset
选择的属性来检查的方向。
答
您可以在支持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不支持扩展()方法。 – Inez
@ Inez:是的。他们忽略了[我的错误报告](https://connect.microsoft.com/IE/feedback/details/737106/implement-missing-extend-method-of-selection)。 –
@TimDown我刚刚在Mircrosoft EDGE中测试了这种方法,它确实有效。可能,他们最终实现了extend()方法。 – Kersh