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面向对象编程
Mar 18 Javascript
js获取某月的最后一天日期的简单实例
Jun 22 Javascript
使用jQuery和PHP实现类似360功能开关效果
Feb 12 Javascript
原生javascript实现拖动元素示例代码
Sep 01 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
vue.js,ajax渲染页面的实例
Feb 11 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
node脚手架搭建服务器实现token验证的方法
Jan 20 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
用来给图片加水印的PHP类
2008/04/09 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python 除法小技巧
2008/09/06 Python
Python程序设计入门(4)模块和包
2014/06/16 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Django 实现下载文件功能的示例
2018/03/06 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
为什么要有struct关键字
2012/05/08 面试题
设计模式的基本要素是什么
2014/04/21 面试题
大学毕业生通用求职信
2013/09/28 职场文书
旅游管理毕业生自荐信
2013/11/05 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书