可编辑div问题总结(光标,显示等)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可编辑div问题总结(光标,显示等)相关的知识,希望对你有一定的参考价值。

参考技术A 背景:需要编写一个简单的文本输入框,要求可以添加超链接,并且超链接可以修改内容,超链接在文本框中只显示标题(类似在html中显示a标签一样)
目前的基于vue框架:

html:

contenteditable属性可以把div变成可编辑状态,这是开发文本编辑框的基础。添加该属性后基本是满足一般文本输入。

1.换车键问题:
在可编辑div回车会在文本框中添加div标签(也可能是p标签),所以需要在div中监控回车事件并取消默认事件

2.获取div的内容
需要使用this.$refs.myeditor.innerHTML来获取,text.textarea虽然绑定了值但实际是获取不到的,除非有进行手动赋值。

3.添加超链接
这里主要讲讲添加的方式,具体可根据需求来。
因为我这里是点击一个按钮打开弹框的方式来添加超链接,所以:

这样能确保超链接是添加在你之前光标定位的地方,不然就会出现超链接只能添加在文本尾部的情况。

涉及光标的方法:

以上是关于可编辑div问题总结(光标,显示等)的主要内容,如果未能解决你的问题,请参考以下文章

js中,为可编辑div添加表情后如何光标移至最后

可编辑div将光标定位到最后

可编辑div contenteditable="plaintext-only" 模拟输入框,在IE浏览器下,鼠标不显示光标,不能输入编辑

如何获取可编辑div或body里光标的像素位置?

文本编辑器弹出时内容可编辑光标位置在可编辑 div 中

js在opera下怎样获取可编辑div中的鼠标光标和选中文本