Vue中div contenteditable 的光标定位方法


Posted in Javascript onAugust 25, 2018

在Vue做项目时,做了一个div[contenteditable=true]的组件作为文本输入框

在非手动输入值后,光标会丢失,经测试以下这段代码可用,直接将光标定位到最后

function keepLastIndex(obj) {
  console.log(obj)
  console.log(window.getSelection)
  console.log(document.selection)
  if (window.getSelection) { //ie11 10 9 ff safari
   obj.focus(); //解决ff不获取焦点无法定位问题
   var range = window.getSelection(); //创建range
   range.selectAllChildren(obj); //range 选择obj下所有子内容
   range.collapseToEnd(); //光标移至最后
  } else if (document.selection) { //ie10 9 8 7 6 5
   var range = document.selection.createRange(); //创建选择对象
   //var range = document.body.createTextRange();
   range.moveToElementText(obj); //range定位到obj
   range.collapse(false); //光标移至最后
   range.select();
  }
 }

在实际使用时,vue.$emit是一个异步函数,最好在调用这个定位前加上一定的延迟,经测试,5ms就可以了

setTimeout(()=>{
 keepLastIndex(e.target)
},5)

以上这篇Vue中div contenteditable 的光标定位方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
JavaScript—window对象使用示例
Dec 09 Javascript
javascript动态创建链接的方法
May 13 Javascript
深入理解JavaScript的React框架的原理
Jul 02 Javascript
js漂浮广告实现代码
Aug 15 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
vue实现图片上传预览功能
Dec 23 Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 #Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 #Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 #Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 #Javascript
对vue 键盘回车事件的实例讲解
Aug 25 #Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 #Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 #Javascript
You might like
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
js select常用操作控制代码
2010/03/16 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
jQuery实现手风琴特效
2021/01/11 jQuery
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
下载糗事百科的内容_python版
2008/12/07 Python
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
运输企业安全生产责任书
2014/07/28 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
SQL写法--行行比较
2021/08/23 SQL Server