新行,并且对嵌套的不可编辑标记感到满意

时间:2012-07-12 13:11:19

标签: html contenteditable

我对HTML中的contenteditable元素有一个奇怪的例子。我们有一个富文本编辑器,客户可以将预制模板(由我们)加载到其中,然后可以根据需要修改该模板(主要是)。

我们模板的某些部分已被标记为不能直接编辑,但仍可以删除等等。但是,当一个这样的元素是一行上的第一个元素(直接在{{1之后)时似乎存在问题标签),用户点击上面一行的<br/>。由于其DEL,浏览器似乎不会删除contenteditable=false,而是删除整个不可编辑的范围。

示例HTML就像这样

<br/>

如果用户将光标放在<div contenteditable=true> <span>blah blah blah</span><br/> <span contenteditable="false">You cant edit this value directly</span> </div> 之后,并点击blah blah blah,则会删除整个下一个可编辑内容,而不是换行符。

有没有办法,javascript或其他方式来解决这个问题?

我试图检测光标位置(使用rangy),插入临时空间等,但我似乎无法让它拥有所需的行为,这就是不可编辑的标签被提起来了到上一行。

我们仅限编辑器使用Chrome,因此无需担心IE或FF。

jsfiddle of an example

2 个答案:

答案 0 :(得分:0)

制作每个范围contenteditable,然后用户将无法删除您不想编辑的范围,并摆脱可编辑的div。

这是我的JSFiddle版本:http://jsfiddle.net/howderek/HgRsF/2/

答案 1 :(得分:0)

问题是从2012年开始,从那时起,此问题已得到解决,嵌套的contenteditable标记按预期工作。仍然存在一些问题,例如this bug,但总体而言,该功能应该可用。