4 个答案:

答案 0 :(得分:19)

在IE< = 8以外的浏览器中,这样做:

function placeCaretAfterNode(node) {

if (typeof window.getSelection != "undefined") {

var range = document.createRange();

range.setStartAfter(node);

range.collapse(true);

var selection = window.getSelection();

selection.removeAllRanges();

selection.addRange(range);

}

}

但是,某些浏览器(特别是基于WebKit的浏览器)已经确定了文档中哪些位置对插入符号有效,并将规范化您添加到选择中的任何范围以符合这些想法。以下示例将在Firefox和IE 9中执行您想要的操作,但不会在Chrome或Safari中执行此操作:

没有一种解决方法是好的。选项包括:

在范围后添加零宽度空格字符并选择它

使用元素而不是因为WebKit使

答案 1 :(得分:3)

这个功能管理我的想法:

function pasteHtmlAtCaret(char) {

var sel = rangy.getSelection();

var range = sel.rangeCount ? sel.getRangeAt(0) : null;

var parent;

if (range) {

var parentEl = document.createElement("span");

jQuery(parentEl).addClass('char').addClass('latest');

parentEl.appendChild(range.createContextualFragment(char));

// Check if the cursor is at the end of the text in an existing span

if (range.endContainer.nodeType == 3

&& (parent = range.endContainer.parentNode)

&& (parent.tagName == "SPAN")) {

range.setStartAfter(parent);

}

range.insertNode(parentEl);

if(jQuery(parentEl).parent().get(0).tagName.toLowerCase() == 'span'){

var spanParent = jQuery(parentEl).parent('span');

var parentEl = jQuery('').insertAfter(spanParent).append(parentEl).get(0);

}

jQuery("span.spanchild").each(function(index, element){

var content = jQuery(element).children('span.char').first().html();

jQuery(element).children('span.char').remove();

jQuery(element).html(content);

jQuery(element).removeClass('spanchild');

});

range.setStartAfter(parentEl);

rangy.getSelection().setSingleRange(range);

jQuery(parentEl).removeClass('latest');

}

}

答案 2 :(得分:3)

只是span.contentEditable = false让蒂姆的解决方案正常工作;)

答案 3 :(得分:0)

我设法使用带有&nbsp的'a'标记解决了这个问题。

示例: - ""+ content/element you want to add +" "

css悬浮在某个span后面,在contenteditable div中的span元素后面设置光标相关推荐

  1. js添加html换行符,javascript – 在contenteditable div中的输入键上插入换行符

    我试图插入一个换行符,而不是当我在一个contenteditable div中输入时浏览器想要插入的内容. 我当前的代码看起来像这样: if (e.which === 13) { e.stopProp ...

  2. html中span标签字数大小,DIV字体大小 span字体大小 font-size样式

    DIV内字体大小,DIV内文字大小设置,div font-size字体大小布局篇,同时扩展到span字体大小,等标签内字体大小设置布局教程 设置对象DIV字体大小或span字体大小设置有两种方法,一种 ...

  3. js中html标签变文字颜色,javascript – 更改contenteditable div中文本的颜色

    您可以使用HTML编辑API来处理此类用例.参考这里: https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html 简而言之,使用execComm ...

  4. html div数据替换,在contenteditable div中替换innerHTML

    小编典典 问题在于,Rangy的保存/恢复选择模块通过将不可见的标记元素插入到选择边界所在的DOM中来工作,然后您的代码会去除所有HTML标签,包括Rangy的标记元素(如错误消息所示).您有两种选择 ...

  5. div中的span水平居中

    给div设置以下样式就可以 div{text-align: center }

  6. HTML如何修改span里面的字体颜色,怎么用span css设置div内部分字体颜色?

    本篇文章给大家带来的内容是关于怎么用span css设置div内部分字体颜色,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 用span标签设置div内放一段文字中的部分文字字体颜色方 ...

  7. [19/06/05-星期三] CSS基础_样式表的位置(内联、内部、外部样式)、块元素(div)、内联元素(span)、常用的选择器...

    一.概念 CSS(Cascading Style Sheets,层叠样式表) 可以用来为网页创建样式表,通过样式表可以对网页进行装饰. 所谓层叠,就是可以将整个网页想象成是一层一层的结构,层次高的将会 ...

  8. html代码字号div style=,div字体大小设置 css设置div中字体大小尺寸样式

    div字体大小设置 css设置div中字体大小尺寸样式设置篇 在css div布局中常常对div字体大小设置,这篇ThinkCSS为大家介绍div中字体大小尺寸样式设置,通过直接在div标签加字体大小 ...

  9. div怎么在css中设置字体大小,div字体大小设置 css设置div中字体大小尺寸样式

    div字体大小设置 css设置div中字体大小尺寸样式设置篇 在css div布局中常常对div字体大小设置,这篇ThinkCSS为大家介绍div中字体大小尺寸样式设置,通过直接在div标签加字体大小 ...

最新文章

  1. 为你分享10篇NLP、CV领域优质论文
  2. 人工机器:TM、VNM和NTM的内存机制
  3. JavaCL 1.0.0-RC3 发布,性能大幅提升
  4. 如何实现动态水球图 --》 echars结合echarts-liquidfill实现
  5. mysql 事b务 查询_MySQL进阶学习笔记二(包括连接查询、子查询、联合查询、事务、存储过程)...
  6. 使用Free Spire.Presentation生成PowerPoint文件
  7. 面试技巧,如何通过索引说数据库优化能力
  8. img的属性alt 与 title的区别
  9. 定点运算之补码一位乘法(Booth算法)
  10. PV、UV、IV的概念
  11. AI如何修改画布尺寸? ai怎么设置画布大小_AI教程自学网
  12. Android强制竖屏
  13. Unity 版本更新
  14. 主动求变,苏宁易购如何破局2022?
  15. 在Windows下编写的代码,实时在Linux下编译
  16. Git 强制更新覆盖本地代码
  17. pythonwith open 打开多个文件_Python中使用with语句同时打开多个文件
  18. Linux ffmpeg命令的使用
  19. crux系列写作-篇首
  20. 在yolo训练的时候又去测试就会报错:cuda error: out of memory

热门文章

  1. 周期性工作crontab
  2. 安装oracle时错误OUI-25031
  3. Linux内核中流量控制(12)
  4. Case Western Reserve大学通过思科网络构建智能学习环境
  5. Alpha冲刺 - (6/10)
  6. [最小生成树][Dij] Jzoj P5818 做运动
  7. python:类5——Python 的类的下划线命名有什么不同?
  8. 【Linux】【Shell】【Basic】字符串操作
  9. 手把手教你crontab排障
  10. Linux之rm命令