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 相关文章推荐
js no-repeat写法 背景不重复
Mar 18 Javascript
自己整理的一个javascript日期处理函数
Oct 16 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
jquery绑定事件不生效的解决方法
Feb 11 Javascript
js中top的作用深入剖析
Mar 04 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
May 12 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
js调用刷新界面的几种方式
May 03 Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 Javascript
JavaScript事件对象event用法分析
Jul 27 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实现的轻量级简单爬虫
2015/07/08 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
tagName的使用,留一笔
2006/06/26 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
Three.js学习之网格
2016/08/10 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
Python collections模块实例讲解
2014/04/07 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python_LDA实现方法详解
2017/10/25 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Python3 批量扫描端口的例子
2019/07/25 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
给护士表扬信
2014/01/19 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
补充协议书范本
2014/04/23 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
公司员工活动策划方案
2014/08/20 职场文书
红色影片观后感
2015/06/18 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题