可编辑div在光标位置插入指定内容

//在光标位置插入内容
insertContent(content) {if (!content) {//如果插入的内容为空则返回return;}let sel = null;if (document.selection) {//IE9以下sel = document.selection;sel.createRange().pasteHTML(content);} else {sel = window.getSelection();if (sel.rangeCount > 0) {let range = sel.getRangeAt(0);      //获取选择范围range.deleteContents();             //删除选中的内容let el = document.createElement("div"); //创建一个空的div外壳 el.innerHTML = content;                 //设置div内容为我们想要插入的内容。let frag = document.createDocumentFragment();//创建一个空白的文档片段,便于之后插入dom树let node = el.firstChild;let lastNode = frag.appendChild(node);range.insertNode(frag);                 //设置选择范围的内容为插入的内容let contentRange = range.cloneRange();  //克隆选区contentRange.setStartAfter(lastNode);          //设置光标位置为插入内容的末尾contentRange.collapse(true);                   //移动光标位置到末尾sel.removeAllRanges();                  //移出所有选区sel.addRange(contentRange);             //添加修改后的选区}}
}

需注意:在谷歌浏览器下测试发现:

document.execCommand("inserHTML", "false", '<p><img src="./test.png" /></p>);

当使用这种方式插入html内容时,p标签不见了,只有img标签存在。但是如果单独插入一个p标签时,p标签又存在。故经多次测试发现inserHTML方式只适合插入单个标签,复合标签插入时则解析错乱。

使用方式

 let imgTag = `<p><img src=${eidtorImg.src} /></p>`;this.insertContent(imgTag);//content内容为html字符串。

可编辑div在光标位置插入指定内容相关推荐

  1. vue 怎么在字符串中指定位置插入字符_vue项目中在可编辑div光标位置插入内容的实现代码...

    vue项目中在可编辑div光标位置插入内容 html: @dragstart="dragStart($event, item.labelName)" draggable='true ...

  2. php光标添加,JS在可编辑的div中的光标位置插入内容的方法_javascript技巧

    本文实例讲述了js实现在可编辑div中指定位置插入内容的方法,就像我们使用的编辑器一样,分享给大家供大家参考.具体实现方法如下: 首先要让DIV启用编辑模式 通过设定contenteditable=t ...

  3. vue光标插入内容_vue项目中在可编辑div光标位置插入内容的实现代码

    vue项目中在可编辑div光标位置插入内容 html: @dragstart="dragstart($event, item.labelname)" draggable='true ...

  4. quill光标位置插入html,quill编辑器+word文档上传,插入指定位置

    官方quill没有直接给出插入html的方式 类似,下面两个方法,是quill框架提供的,但是并没有提供可以在指定光标位置插入html quill.pasteHTML:这个方法已经废弃了,但目前还是可 ...

  5. 点击按钮,在input框在光标位置插入文字,系列问题待解决

    想制作一个公式设计器,需要在文字的对应位置插入按钮对应的文字,效果如下: 遇到的问题: 1. 如何获取光标位置,并在对应位置插入内容 两种情况: (1)用户点击位置后,在光标位置插入内容 (2)用户选 ...

  6. 【jQuery插件】insertContent-在文本框光标位置插入内容并选中

    在文本框光标位置插入内容在实际的项目应用中经常用到,比如在文本框插入表情,首先要获取光标在文本框中的位置,当然这个有浏览器兼容性问题. IE下可以通过document.selection.create ...

  7. jQuery 输入框 在光标位置插入内容, 并选中

    // //使用方法 //$(文本域选择器).insertContent("插入的内容"); //$(文本域选择器).insertContent("插入的内容", ...

  8. JS里在光标位置插入字符

    <script language=Javascript> function AddOnPos(obj, charvalue) {     //obj代表要插入字符的输入框     //va ...

  9. 在文本框的光标处插入指定的文本(兼容IE6和Firefox)

    昨天有人问我这个事,今天就来做做了,最开始是按自己的思路做,在keyup事件里对输入键做判断,以处理什么退格啊,删除啊,上下左右移动等动作,然后记录光标位置来做文本处理,费了好大劲.不过后来无意中发现 ...

最新文章

  1. 求表达式 f(n)的结果
  2. Microsoft Security Essential: 微软安全软件
  3. GoAhead2.5源代码分析之6-访问验证(security.c)
  4. 明日之后服务器什么时候维护结束,明日之后什么时候合区 合区时间详解[多图]...
  5. boost::hana::product用法的测试程序
  6. base64 RFC 4648
  7. struts2.2.1.1 类型转换问题 (传递Date类型参数)
  8. Listary-不仅仅是快速检索文件
  9. 嗨淘点赞运营版完整源码/刷单/手动派单版本
  10. Jquery API帮助文档 chm
  11. 提升睡眠质量:程序猿工作伴侣(睡眠革命)
  12. 网络丢包怎么办?这些解决办法
  13. win7网上邻居_win7网上邻居寻找教程
  14. Java计算点的质心_java-矩阵的质心
  15. CSAPP第七章家庭作业参考答案
  16. 【跨境电商】如何创建吸引人的免费送货电子邮件营销
  17. 活动|美团0.98充10元话费,秒到账,不实名不绑卡,超简单!
  18. 常州abb机器人编程_最新ABB机器人编程程序解析
  19. python学习笔记:类的方法总结
  20. Screen使用教程

热门文章

  1. 云服务器选股,【图】老师们能不能在通达信7.48中整合云行情服务器?_选股公式,股票,炒股公式,股票指标,股票论坛_股票软件技术交流论坛_理想论坛 - 股票论坛...
  2. IVX低代码平台开发——微信小程序实现抽奖功能
  3. WorkFusion智能文档处理IDP系统介绍
  4. python四叶玫瑰数,任意位数自幂数寻找|Python练习系列[4]
  5. 移动分销平台是什么鬼?
  6. ps里面怎么插入流程图_Photoshop制作网站流程图详细过程
  7. 基于 8051单片机的线跟随小车
  8. 揭露安利!!!!!!
  9. Linux没有网怎么解决。
  10. 探讨!自媒体的推荐机制提高百家号阅读收益方法!