关于contenteditable = true中光标异常判定的解决方法

2023-11-09

<template>
    <div class="edit-div"
         v-html="innerText"
         :contenteditable="canEdit"
         @focus="isLocked = true"
         @blur="isLocked = false"
         @input="changeText">
    </div>
</template>

我使用的是Vue这是模板代码

<script type="text/ecmascript-6">
    export default {
        name: 'editDiv',
        props: {
            value: {
                type: String,
                default: ''
            },
            canEdit: {
                type: Boolean,
                default: true
            }
        },
        data() {
            return {
                innerText: this.value,
                isLocked: false
            }
        },
        watch: {
            'value'() {
                if (!this.isLocked || !this.innerText) {
                    this.innerText = this.value;
                }
            }
        },
        methods: {
            changeText(){
                setTimeout(() => {
                    // 在父组件中给予空格,因为在contenteditable存在首次输入光标对象判断异常,在插入数据前进行取出空格
                    this.$emit('input', this.$el.innerHTML.trim());
                }, 5);
            },
        }
    }
</script>

这是JavaScript代码

 

<style lang="scss" scoped type="text/css">
    .edit-div {
        width: 100%;
        height: 100%;
        overflow: auto;
        word-break: break-all;
        outline: none;
        user-select: text;
        white-space: pre-wrap;
        text-align: left;
        &[contenteditable=true]{
            user-modify: read-write-plaintext-only;
            &:empty:before {
                content: attr(placeholder);
                display: block;
                color: #ccc;
            }
        }
    }
</style>

 

我的解决办法就是,使用该组件时,v-model绑定数据传值给该组件,父组件数据给数据加空格

类似以下部分

data(){
    return {
        test: " "
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于contenteditable = true中光标异常判定的解决方法 的相关文章

  • 什么是线程同步和线程异步?

    1 什么是线程同步和线程异步 线程同步 是多个线程同时访问同一资源 等待资源访问结束 浪费时间 效率不高 线程异步 访问资源时 如果有空闲时间 则可在空闲等待同时访问其他资源 实现多线程机制 异步处理就是 你现在问我问题 我可以不回答你 等

随机推荐

  • C++11中enable_shared_from_this的用法解析

    什么是 enable shared from this 下面摘自 cpp reference 中概述 C 11 开始支持 enable shared from this 它是一个模板类 定义在头文件
  • RestHighLevelClient集成ES 7.X

    Maven依赖 依赖版本号和elasticsearch版本号对应起来
  • java基础三(运算符)

    标识符 在Java语言中 与类无关的运算符只有赋值运算符 算术运算符 关系运算符 逻辑运算符和位运算符 赋值运算符 符号为 作用是将数据 变量或对象赋值给相应类型的变量或对象 例如 int a 5 将数据复制给变量 long b a 将变量
  • jmeter切换JDK版本

    tomcat设置固定的JDK tomcat bin vi setclasspath sh 最上面添加可以生效 export JAVA HOME usr local jdk1 8 0 131 export JRE HOME usr local
  • 肖飒:央行数字货币与反洗钱,你怎么看?

    商务部在今年8月14日印发的 全面深化服务贸易创新发展试点总体方案 中提到 在京津冀 长三角 粤港澳大湾区及中西部具备条件的试点地区开展数字人民币试点 而就在几天前 深圳罗湖数字人民币红包活动正式落幕 中国数字货币在深圳打响了 第一枪 10
  • JAVA单元测试框架-11-异常测试

    预计测试会出现异常 可以使用 Test expectedExceptions 来验证是否有异常抛出 import org testng Reporter import org testng annotations DataProvider
  • AIGC之常见LLM免费使用

    文章目录 1 前言 2 常见LLM免费使用方法 部分网站需要使用魔法 2 1 GPT 4 GPT 3 5 16k国内镜像 2 2 GPT 3 5 国内镜像 2 3 LLM国外综合网站 3 总结 1 前言 自从ChatGPT在2022年底横空
  • 【App端】uni-app使用百度地图api和echarts省市地图下钻

    目录 前言 方案一 echarts 百度地图 获取百度地图AK 安装echarts和引入百度地图api 完整使用代码 方案二 echarts地图和柱状图变形动画 实现思路 完整使用代码 方案三 中国地图和各省市地图下钻 实现思路 完整使用代
  • SpringBoot中启动类的存放位置

    如有错误 请多指教 不能直接放在main java 文件下 启动类所在的包是最顶部的包 不能直接放在main java 文件下 ps BootQueueConsumerApplication是启动类 否则会直接报错 如下图 启动类所在的包是
  • java jdbc 故障转移,MySQL JDBC连接上的故障转移?

    I am trying to determine how i could implement a high availablity solution using the MySQL JDBC driver it seems that the
  • 最全的Java笔试题库之选择题篇-总共234道【121~180】

    121 EJB的优点有哪些 选择2项 A 技术领先 B 价格低廉 C 性能优越 D 强大的容器支持 解答 CD 122 以下哪些接口能够实现对Web访问者的身份认证 选择1项 A Http Servlet Request B Http Se
  • Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)

    用su切换到root用户后 运行某些带图形的程序 会报如下错误 ImageProc qt 3158 GLib GIO CRITICAL g dbus connection register object assertion G IS DBU
  • iOS进阶_密码学(二.钥匙串访问)

    网络开发中的原则 在网络上不允许传输用户的明文隐私数据 在本地不允许保存用户的明文隐私数据 类似于QQ 微信的记住密码 在客户端本地保存用户加密后的密码 NSUserDefaults 明文保存才能反算 能够反算的算法 钥匙串访问 开放给开发
  • Fortran 微分方程求解 --ODEPACK

    最近涉及到使用Fortran对微分方程求解 我们知道MATLAB已有内置的函数 比如ode家族 ode15s 对应着不同的求解办法 通过查看odepack的官方文档 我尝试使用了dlsode求解刚性和非刚性常微分方程组 首先是github网
  • Unity3d防止按键劫持导致无法响应点击事件

    起因 项目上线之后 接到一些玩家反馈 在登录界面点击没有响应 无法登陆的 小米 魅族等应用商店上的差评也大多集中于此 心里一万只草泥马在奔腾 排查问题 首先 排查逻辑代码 找出是谁写的代码 大概会被拿去祭天吧 然而并没有 逻辑代码并没有问题
  • FastCGI处理自定义HTTP头

    FCGX中 自定义头可以获取环境变量获得 但是名字前面要加入HTTP 字母全部大写 例如 自定义头username 在fastcgi的FCGX中 变为 HTTP USERNAME 可以用FCGX GetParam获取单个环境变量 头信息在F
  • 使用高德地图(点标记)完成vue2项目

    目录 前言 官网中的代码 项目中的代码 效果图 代码 配置 前言 由于项目 中有要使用高德地图的需求 我就 傲娇的说 我会使用百度地图 可以改为百度地图不 最终的结果就是要用高德地图 后端小哥哥还特别好的安慰我说 高德地图的用法跟百度地图的
  • 上采样和下采样

    分辨率 是屏幕图像的精密度 是指显示器所能显示的像素的多少 由于屏幕上的点 线和面都是由像素组成的 显示器可显示的像素越多 画面就越精细 同样的屏幕区域内能显示的信息也越多 可以把整个图像想象成是一个大型的棋盘 而分辨率的表示方式就是所有经
  • c#笔记2018-12-27

    using System 2018 12 27 c 学习笔记 1 c 判断if else if switch 2 循环while for do while 3 循环实例 for循环99乘法表 while 循环99乘法表 do while 循
  • 关于contenteditable = true中光标异常判定的解决方法