在 contenteditable=true 中的 contenteditable=false

9

问题:

我发现在Chrome和Opera浏览器中存在一种不良行为,当我们删除两个p标签之间的分隔符时,会导致Chrome和Opera删除contenteditable=false元素(widget)和后面的文本。

示例:

jsfiddle上的示例

html:

<div contenteditable="true" class="editor">
<p>This is the first paragraph.</p>
<p>&larr;Place your cursor here and press backspace. <span class="widget" contenteditable="false">widget</span> Text after widget</p> 
</div>

CSS:

.widget{
    display: inline-block;
    padding: 5px;
    background-color: gray;
}

.editor{
    font: 20px Trebuchet MS
}

问题:

为什么会出现这个问题?如何修复?


你是指使用Blink引擎的Opera浏览器吗?但我无法确定在Opera 12中是否有该引擎。 - Bergi
这个问题已经有解决方案了吗? - diofeher
这个问题似乎已经解决了。 - Mehdi Javan
1个回答

3
我很久以前向BlinkWebkit报告了这个漏洞。 这是相当关键的问题,没有解决方法。 Webkit团队试图修复它,但据我所见,他们引入了新的漏洞 ;|。
PS. 是的,这个答案没有提出任何修复方法,但唯一的解决方法是重写deletebackspace键的行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接