`
shuaigg.babysky
  • 浏览: 568180 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

获取ie光标所在位置,一定记好了。

 
阅读更多

代码是这么写的。

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,就不好办了。

分享到:
评论

相关推荐

    JS获取文本框焦点光标位置、选中起始位置、终止位置、选择内容

    1. **焦点光标位置**:当用户在文本框中输入时,光标所在的位置就是焦点位置。这可以帮助我们判断用户当前正在输入的位置,以便进行相应的处理。 2. **选中起始位置**:这是用户选择的文本块的起始字符位置。例如,...

    JavaScript获取,设置光标位置,兼容InputTextArea

    如果未选中任何文本,它们代表光标所在的位置。 ```javascript // 获取光标位置 let input = document.querySelector('input'); let cursorPos = input.selectionStart; ``` 在上面的代码中,`document....

    获取和设置输入框光标位置的插件

    "获取和设置输入框光标位置的插件"就是这样一个工具,它允许开发者方便地获取或设定文本输入框中的光标位置,从而提升应用的功能性和用户友好性。 首先,我们需要理解光标在输入框中的作用。光标是用户输入时的指示...

    javascript获得光标所在的文本框(text textarea)中的位置.docx

    ### JavaScript 获取光标所在文本框(text/textarea)中的位置 在前端开发中,经常需要处理用户在文本框(如`<input type="text">`或`<textarea>`)内的输入行为,例如实现自动填充、实时校验等功能时,获取光标的...

    JS获取文本框光标位置、选中起始位置、终止位置、选择内容

    在JavaScript中,可以通过`element.selectionStart`属性来获取当前光标所在的位置。这个属性返回的是一个整数,表示用户在文本框中光标所在的字符索引。例如: ```javascript const input = document....

    在textarea光标处插入文本

    - 通过`selectionStart`和`selectionEnd`属性获取光标所在位置。 - 将原始文本分为两部分:光标前的部分和光标后的部分。 - 插入新文本,并更新`textarea`的内容。 - 如果`textarea`滚动条之前被激活,则保存滚动条...

    获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍

    2. 通过selection对象的anchorNode属性来确定光标所在的DOM节点。 3. 通过DOM节点的父节点或者自身来获取与编辑元素相对应的标签名称。 4. 根据标签名称判断光标位置的获取方式。例如,对于textarea和input text,...

    使用TextRange获取输入框中光标的位置的代码

    其中后者又有可以衍生出很多更有用的用途,比如:限制输入的MaskTextBox,其核心技术点就是获取输入框的光标位置,然后使用正则表达式判断输入内容。还有我后面会介绍的”使用方向键在输入框矩阵中自然的导航”,...

    javascript获得光标所在的文本框(text/textarea)中的位置

    `selectionStart`返回的是光标在文本框中开始选择的字符索引,如果未进行任何选择,那么它就代表了光标所在的位置。 在IE浏览器中,情况稍微复杂一些,因为它不支持`selectionStart`属性。此时,我们需要利用`...

    jQuery往textarea中光标所在位置插入文本的方法

    本文主要介绍如何使用jQuery在textarea元素中光标所在位置插入文本的技术,涉及到的操作和概念包括jQuery库的使用、文本框(textarea)的光标定位与操作、JavaScript中的字符串操作等。文章首先定义了jQuery的扩展...

    JavaScript记录光标在编辑器中位置的实现方法_.docx

    在现代浏览器中,可以通过HTML5的`selectionStart`和`selectionEnd`属性来获取或设置光标所在位置。这两个属性分别表示选中文字的起始和结束位置,未选中文字时,它们表示光标所在的字符位置。 以下是一个简单的...

    IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)

    对于计算具体的位置,需要依赖于CSS中的line-height、font-size、margin和padding等属性来确定文本所在的确切位置。确定了这些信息之后,配合textRange的text和htmlText属性来比对附近元素的文本内容,可以推断出...

    JavaScript 获取/设置光标位置,兼容InputTextArea

    在JavaScript中,获取和设置光标位置是常见的需求,特别是在处理用户输入时,例如在`Input`或`TextArea`元素中。以下将详细介绍如何在不同类型的输入元素中实现这一功能,并确保兼容性。 首先,我们需要了解`Input`...

    获取表单中当前光标位置

    当我们谈论光标位置时,实际上是指用户在这些元素中输入时闪烁的光标所在字符的位置。 在JavaScript中,获取光标位置的方法并不直接,因为浏览器没有提供一个标准的API来获取这个信息。但是,我们可以利用一些技巧...

    往光标所在位置插入值的js代码

    在JavaScript中,向输入域(例如文本框或文本区域)的光标所在位置插入字符串是一项常见的操作,这对于实现各种功能,如自动补全、格式化输入等非常有用。本篇文章将详细讲解如何利用JavaScript实现这一功能。 首先...

    光标处插入,兼容IE6,IE7,FF等,适用于编辑器,浏览插入表情

    开发者需要在光标所在的位置插入特定内容,例如图片、表情或链接。然而,由于不同浏览器的DOM操作API和行为存在差异,实现这一功能需要对各浏览器特性有深入理解。 对于IE6和IE7,它们使用的是 Trident 渲染引擎,...

    js获得光标坐标

    很好的兼容了IE、Chrome、火狐等多种主流浏览器,轻松获得指定控件光标所在位置的坐标。 用法: var elem = document.getElementById(控件id); var p = kingwolfofsky.getInputPositon(elem); p.left;//获得指定...

    Javascript实现获取及设置光标位置的方法

    Javascript提供了操作页面元素光标位置的API,让我们可以获取光标当前所在位置,并能够设置光标到特定位置。 首先,要获取光标位置,可以通过编写一个函数`getCaretPosition`来实现。该函数接受一个元素作为参数,...

    JS在TextArea光标位置插入文字并实现移动光标到文字末尾

    - 获取当前光标位置(`startPos`和`endPos`) - 创建一个新的字符串,将原值分为两部分:一部分是选区之前的内容,另一部分是选区之后的内容 - 在选区之前的内容后插入`str` - 计算新光标位置(`cursorPos`),...

    获取和设置文本框的光标位置

    这个属性返回的是光标所在字符的索引。例如: ```javascript var input = document.getElementById('myInput'); var cursorPos = input.selectionStart; ``` 在jQuery中,由于没有直接的$.fn方法来获取光标位置,...

Global site tag (gtag.js) - Google Analytics