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 相关文章推荐
jquery tools 系列 scrollable(2)
Sep 06 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
JS功能代码集锦
May 04 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
vue+element+Java实现批量删除功能
Apr 08 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
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 文件扩展名 获取函数
2009/06/03 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
请离开include_once和require_once
2013/07/18 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
一个JQuery操作Table的代码分享
2012/03/30 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
js实现随机点名小功能
2017/08/17 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
vue.js中created方法作用
2018/03/30 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
学习决心书范文
2014/03/11 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
质量整改通知单
2015/04/21 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书