ie10以下focus同高版本的区别,光标位置不保存

简单的说,ie10以下的文本框的光标位置不会被保存

比如说,你在一个文本框里第5个字符的位置下点击了光标,这时你去其它的地方点一下,然后执行一下该文本框的focus()方法,这时你会发现光标又到文本框最前端了.
而高级浏览器,当你执行focus()时,光标会落在上次点击的位置.


这样就会让很多文本处理功能实现不了,比如说在光标指定问题插入点东西.

解决方法是,在文本框keyup事件中,每次都计算光标位置,存到他的自定义属性中,然后用的时候直接读就行了.


关于如何读取光标位置

 function getTxt1CursorPosition() {
            var oTxt1 = document.getElementById("txt1");
            var cursurPosition = -1;
            if (oTxt1.selectionStart) {//非IE浏览器
                cursurPosition = oTxt1.selectionStart;
            } else {//IE
                var range = document.selection.createRange();

//这个功能相当于在光标位置向左划鼠标选中文字,这里面的移动位数超了也无所谓,然后再计算选中文字的数量,就得到了光标的位置
                range.moveStart("character", -oTxt1.value.length);
                cursurPosition = range.text.length;
            }
            return cursurPosition;
        }


另外,有,blur事件和其它按纽click事件,是先执行click事件,再执行blur事件.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值