在内容可编辑div中模拟光标键(向左,向右,向下,向上箭头)?

时间:2012-04-09 17:26:43

标签: javascript cursor contenteditable caret rangy

是否可以模拟内容可编辑div上的箭头键?我试图解雇“按键”事件,但似乎满足而无视它们。 (我只需要一个webkit / safari解决方案)

我只需要像箭头键一样在div中移动插入符号,但是以编程方式移动。

也许Tim Down的Rangy图书馆可以提供帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这很棘手,因为通常无法完全模拟关键事件。具体来说,在大多数浏览器中,如果没有发生实际的击键,就无法触发键事件的默认浏览器操作。

既然如此,你必须手动完成,这很复杂。箭头键可以处理页面上的可见文本,这意味着您需要考虑折叠空格,来自<br>的隐含换行符和块元素,通过CSS display属性隐藏的元素等许多内容其他细微之处。此外,模拟向上和向下箭头键依赖于获取页面上任意字符的精确像素坐标,这在大多数浏览器中都是非常重要的。

我正在研究在Rangy中浏览页面上的可见文本的方法,这将有助于模拟左右箭头键,但Rangy无法使用向上和向下箭头键。