代码是这么写的。
getCursorPos = function(obj){
var CaretPos = 0;
if (IE) {
obj.focus();
var range = null;
range = ds.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText( obj );
stored_range.setEndPoint('EndToEnd', range );
obj.selectionStart = stored_range.text.length - range.text.length;
obj.selectionEnd = obj.selectionStart + range.text.length;
CaretPos = obj.selectionStart;
}else if (obj.selectionStart || obj.selectionStart =='0'){
CaretPos = obj.selectionStart;
}
return CaretPos;
};
这个是怎么回事呢,是这样的
document.selection.createRange()就得到了文本框的选取
然后duplicate一下就得到了它的副本,为什么用副本呢,主要是要知道开头到选中的开始一共多少个字。
还好,微软提供了个api,叫moveToElementText,调用之后能把选取副本的所有内容都选中,
然后又调用了setEndPoint('EndToEnd' , range);这样把全部选中的部分的结束弄到了文本框当前光标的结束位置。
然后副本的长度减去选取的长度就是光标所在的位置,哈哈,这招真牛。
还得感谢微软啊,要是没有moveToElementText和setEndPoint,就不好办了。
分享到:
相关推荐
1. **焦点光标位置**:当用户在文本框中输入时,光标所在的位置就是焦点位置。这可以帮助我们判断用户当前正在输入的位置,以便进行相应的处理。 2. **选中起始位置**:这是用户选择的文本块的起始字符位置。例如,...
如果未选中任何文本,它们代表光标所在的位置。 ```javascript // 获取光标位置 let input = document.querySelector('input'); let cursorPos = input.selectionStart; ``` 在上面的代码中,`document....
"获取和设置输入框光标位置的插件"就是这样一个工具,它允许开发者方便地获取或设定文本输入框中的光标位置,从而提升应用的功能性和用户友好性。 首先,我们需要理解光标在输入框中的作用。光标是用户输入时的指示...
### JavaScript 获取光标所在文本框(text/textarea)中的位置 在前端开发中,经常需要处理用户在文本框(如`<input type="text">`或`<textarea>`)内的输入行为,例如实现自动填充、实时校验等功能时,获取光标的...
在JavaScript中,可以通过`element.selectionStart`属性来获取当前光标所在的位置。这个属性返回的是一个整数,表示用户在文本框中光标所在的字符索引。例如: ```javascript const input = document....
- 通过`selectionStart`和`selectionEnd`属性获取光标所在位置。 - 将原始文本分为两部分:光标前的部分和光标后的部分。 - 插入新文本,并更新`textarea`的内容。 - 如果`textarea`滚动条之前被激活,则保存滚动条...
2. 通过selection对象的anchorNode属性来确定光标所在的DOM节点。 3. 通过DOM节点的父节点或者自身来获取与编辑元素相对应的标签名称。 4. 根据标签名称判断光标位置的获取方式。例如,对于textarea和input text,...
其中后者又有可以衍生出很多更有用的用途,比如:限制输入的MaskTextBox,其核心技术点就是获取输入框的光标位置,然后使用正则表达式判断输入内容。还有我后面会介绍的”使用方向键在输入框矩阵中自然的导航”,...
`selectionStart`返回的是光标在文本框中开始选择的字符索引,如果未进行任何选择,那么它就代表了光标所在的位置。 在IE浏览器中,情况稍微复杂一些,因为它不支持`selectionStart`属性。此时,我们需要利用`...
本文主要介绍如何使用jQuery在textarea元素中光标所在位置插入文本的技术,涉及到的操作和概念包括jQuery库的使用、文本框(textarea)的光标定位与操作、JavaScript中的字符串操作等。文章首先定义了jQuery的扩展...
在现代浏览器中,可以通过HTML5的`selectionStart`和`selectionEnd`属性来获取或设置光标所在位置。这两个属性分别表示选中文字的起始和结束位置,未选中文字时,它们表示光标所在的字符位置。 以下是一个简单的...
对于计算具体的位置,需要依赖于CSS中的line-height、font-size、margin和padding等属性来确定文本所在的确切位置。确定了这些信息之后,配合textRange的text和htmlText属性来比对附近元素的文本内容,可以推断出...
在JavaScript中,获取和设置光标位置是常见的需求,特别是在处理用户输入时,例如在`Input`或`TextArea`元素中。以下将详细介绍如何在不同类型的输入元素中实现这一功能,并确保兼容性。 首先,我们需要了解`Input`...
当我们谈论光标位置时,实际上是指用户在这些元素中输入时闪烁的光标所在字符的位置。 在JavaScript中,获取光标位置的方法并不直接,因为浏览器没有提供一个标准的API来获取这个信息。但是,我们可以利用一些技巧...
在JavaScript中,向输入域(例如文本框或文本区域)的光标所在位置插入字符串是一项常见的操作,这对于实现各种功能,如自动补全、格式化输入等非常有用。本篇文章将详细讲解如何利用JavaScript实现这一功能。 首先...
开发者需要在光标所在的位置插入特定内容,例如图片、表情或链接。然而,由于不同浏览器的DOM操作API和行为存在差异,实现这一功能需要对各浏览器特性有深入理解。 对于IE6和IE7,它们使用的是 Trident 渲染引擎,...
很好的兼容了IE、Chrome、火狐等多种主流浏览器,轻松获得指定控件光标所在位置的坐标。 用法: var elem = document.getElementById(控件id); var p = kingwolfofsky.getInputPositon(elem); p.left;//获得指定...
Javascript提供了操作页面元素光标位置的API,让我们可以获取光标当前所在位置,并能够设置光标到特定位置。 首先,要获取光标位置,可以通过编写一个函数`getCaretPosition`来实现。该函数接受一个元素作为参数,...
- 获取当前光标位置(`startPos`和`endPos`) - 创建一个新的字符串,将原值分为两部分:一部分是选区之前的内容,另一部分是选区之后的内容 - 在选区之前的内容后插入`str` - 计算新光标位置(`cursorPos`),...
这个属性返回的是光标所在字符的索引。例如: ```javascript var input = document.getElementById('myInput'); var cursorPos = input.selectionStart; ``` 在jQuery中,由于没有直接的$.fn方法来获取光标位置,...