js:富文本编辑器实现@某人

简介: js:富文本编辑器实现@某人

需求分析

  • 需要显示@某人。采用css伪类显示@符号
  • 控制样式。插入一段约定好格式的html代码,提前设置好样式类
  • 点击时需要整体选中,删除时需要整体删除。可添加属性contenteditable=false

解决

刚开始使用的是,插入html方法

document.execCommand("insertHTML", true, html);
• 1

发现以下几个问题:

  • 无法插入span标签
  • 无法插入空标签
  • 会将用户插入的html片段优化处理

image.png

/**
 * 在光标处插入html节点
 * @param {*} node 
 */
function insertHTMLNode(node) {
  // 如果有选中的内容,就替换掉
  var selection = window.getSelection();
  var range = selection.getRangeAt(0);
  //   console.log(range);
  // 删除原有内容
  range.deleteContents();
  range.insertNode(node);
  //  移动光标到下一个输入点
  selection.collapseToEnd();
}

完整代码 : https://github.com/mouday/more-editor

在线Demo: https://mouday.github.io/more-editor/

参考

另一种场景下的js @提到好友

web 前端 @ 功能 JS 实现分析及其原理

富文本实现@选择人

使用wangEditor富文本编辑器时,可以@具体的人

视频:【代码】Javascript小项目 | 富文本编辑器


相关文章
基于three.js的牛逼轰轰的3D编辑器nunuStudio!
这是一款基于Three.js的3D编辑器,我之前一直喊错,叫人家"牛牛",因为我觉得它真的好牛,其实人家正确拼音喊“努努”! 可以发布web的运行包,直接可以网页端二次开发,真的不要太方便了!
基于three.js的牛逼轰轰的3D编辑器nunuStudio!
|
7月前
|
存储 JavaScript 前端开发
使用Strve.js来搭建一款 Markdown 编辑器
今天,我们来使用Strve.js来搭建一款 Markdown 编辑器,没错!你没听错。我们需要创建了一个实时 Markdown 编辑器,用户可以在 textarea 中输入 Markdown 文本,然后实时显示转换后的 HTML。你可能会说使用 Strve.js 开发会不会写的特别复杂难懂啊,还不如用 Vue.js 呢!
|
7月前
|
存储 JavaScript 前端开发
笔.COOL,一个功能完备、使用便捷的在线HTML/CSS/JS以及Vue编辑器和作品分享平台
笔.COOL是一个新兴的在线 HTML/CSS/JS 及 Vue 编辑器,提供实时预览和云端存储功能。用户可以随时随地编写和保存代码,同时分享作品给他人预览和学习。它也是一个实用的 BUG 复现工具,支持嵌入编辑器到博客,促进代码交流。社区活跃,适合开发者展示作品、获取灵感和学习。
|
7月前
|
JavaScript
html+css+js实现文本编辑器
html+css+js实现文本编辑器
84 0
|
7月前
|
存储 前端开发 JavaScript
基于前端技术原生HTML、JS、CSS 电子病历编辑器源码
基于前端技术原生HTML、JS、CSS 电子病历编辑器源码
249 0
|
Web App开发 JavaScript 前端开发
|
存储 JSON JavaScript
fabric.js开发图片编辑器可以实现哪些功能?多图
使用fabric.js开发了图片编辑器,用文字加动图的形式直观的分享出来,帮助做功能参考,项目已开源。
fabric.js开发图片编辑器可以实现哪些功能?多图
|
前端开发 API 容器
前端封装库/工具库的编辑器之Draft.js
在现代前端开发中,富文本编辑器是一个非常重要的组成部分。其中,Draft.js 是一个备受欢迎的 React 富文本编辑器库。
934 0
|
存储 前端开发 JavaScript
前端封装库/工具库的编辑器之Slate.js
随着互联网时代的到来,Web应用程序的内容创作和编辑变得越来越重要。而为了更高效地进行内容编辑和管理,前端封装库/工具库的出现成为了一个非常好的解决方案。其中一个备受关注的编辑器就是Slate.js。
789 0
|
JavaScript 数据库
codemirror+js-yaml实现YAML格式的文本编辑器以及校验YAML格式是否符合规范的实现
codemirror+js-yaml实现YAML格式的文本编辑器以及校验YAML格式是否符合规范的实现
3124 0