如何在Window.selection()文本框中移动插入符号?



我可以用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

select .extend()和selection .modify()方法能够在一定程度上移动插入符号,但是在我操作和替换选择中的内容的用例中,我需要一种更简单的方法来确定我想要放置插入符号的字符数量。顺便说一句:我的文本框是一个wysihtml文本区域,这意味着它在技术上不是一个文本区域div。

如果我理解正确,您想要更改focus的开始偏移量,但Selection.extend()仅用于更改结束偏移量。由于Selection.modify()不在任何标准轨道上,因此不会有"简单的方法"。

您将需要使用select . getrangeat(),它返回一个范围对象。使用范围对象API来设置返回范围的开始偏移量,然后使用selection. addrange()来创建新的选择。您可能需要/需要removeRange()来清除之前的选择。我不知道浏览器会如何处理重叠的选择

最新更新