【发布时间】:2014-11-03 18:24:58
【问题描述】:
我正在尝试在文本中创建从右到左的选择,但似乎 DOM Range API 不允许我这样做。 (我在规范中没有看到任何关于此的内容 - 并不是我仔细阅读了它 - 但所有实现似乎都同意不支持它。)
例如,给定一个非常小的文档:
data:text/html,<div> this is a test </div>
我可以使用这个脚本来启用编辑并创建一个正常的选择(例如从一个书签,但为了清楚起见添加了换行):
javascript:document.designMode='on';
var r=document.createRange(),d=document.getElementsByTagName('div')[0];
r.setStart(d.firstChild, 3);
r.setEnd(d.firstChild, 7);
window.getSelection().addRange(r); void(0);
但是,如果我交换 3 和 7,则不会创建任何选择。
有人知道怎么做吗?
【问题讨论】:
-
从左到右和从右到左的范围有什么区别?据我所见,唯一的区别是能够使用向左的箭头扩展选择。
-
@Juan:我可能遗漏了一些细微之处,但和你一样,我能看到的主要区别是箭头键的行为(所有箭头键,带或不带 Shift 和 Ctrl 修饰键)。此外,在某些环境和浏览器中,除了选择之外,插入符号还会显示在选择的焦点处(即用户停止选择的点)。
标签: javascript selection range