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 相关文章推荐
新浪微博字数统计 textarea字数统计实现代码
Aug 28 Javascript
JavaScript中的eval()函数详解
Aug 22 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
浅谈JavaScript 浏览器对象
Jun 03 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 Javascript
vue基于mint-ui的城市选择3级联动的示例
Oct 25 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
May 08 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
smarty section简介与用法分析
2008/10/03 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
python入门基础之用户输入与模块初认识
2016/11/14 Python
python在非root权限下的安装方法
2018/01/23 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python生成随机红包的实例写法
2019/09/02 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python 创建TCP服务器的方法
2020/07/28 Python
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
放飞理想演讲稿
2014/09/09 职场文书
2016年春节问候语
2015/11/11 职场文书
高考升学宴主持词
2019/06/21 职场文书
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers