我可以使用Window.selection识别我当前关注的文本框:
var selection = window.getSelection();
我可以使用Selection.focusOffset确定插入位置:
var focus = selection.focusOffset;
假设focus
目前 8 ,因此插入符号为 8 个字符。
如何移动插入位置,例如?
中的 5 个字符示例方法:
selection.setFocusOffset(5); // this method does not exist, so I need something similar
Selection.extend()和Selection.modify()方法可以在插页中移动到某种程度,但在我的用例中我操作和替换选择内容我需要一种更简单的方法来确定如何我想要放置插入符中的许多字符。顺便说一下:我的文本框是wysihtml textarea,这意味着它在技术上不是textarea div。
答案 0 :(得分:0)
如果我理解正确,您希望更改focus
的起始偏移量,但Selection.extend()仅用于更改结束偏移量。由于Selection.modify()不在任何标准轨道上,因此不会有简单的方法"。
您需要使用返回Selection.getRangeAt()的range object。将范围对象API用于返回范围的set the start offset,然后使用Selection.addRange()进行新选择。您可能需要/需要removeRange()来清除先前的选择。我不知道浏览器如何处理重叠选择。