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 获取url参数和script标签中获取url参数函数代码
Jan 22 Javascript
为你的网站增加亮点的9款jQuery插件推荐
May 03 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
javascript 构造函数强制调用经验总结
Dec 02 Javascript
浅谈Javascript 数组与字典
Jan 29 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
JQuery的Pager分页器实现代码
May 03 Javascript
基于JavaScript实现在新的tab页打开url
Aug 04 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
使用RN Animated做一个“添加购物车”动画的方法
Sep 12 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 Javascript
toString.call()通用的判断数据类型方法示例
Aug 28 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/06/18 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
深入解析Python中的上下文管理器
2016/06/28 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
深入了解NumPy 高级索引
2020/07/24 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
体育专业个人求职信范文
2013/12/27 职场文书
地质灾害防治方案
2014/05/14 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
感谢信怎么写
2015/01/21 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书