为什么“display:none”的范围会阻止删除前面的“contententeditable = false”范围?

时间:2013-05-09 16:37:12

标签: google-chrome contenteditable rangy

此行为特定于Chrome(在编写版本26.0.1410.64 m时,但我知道它已经发生了一段时间)。

采用以下HTML:

<div contenteditable="true">
    <div contenteditable="false">
        <div contenteditable="true"><div><span contenteditable="false">[Interruption]</span><span style="display: none;"></span></div></div>
    </div>

在生成的ContentEditable Div中,将插入符号放在“中断”范围之后。然后尝试使用退格键将其删除。你会发现这是不可能的。

以下是jsfiddle说明这一点。

请注意,在“中断”范围之后立即键入一些文本可以解决问题,因为您可以像往常一样将左箭头返回到跨度完成和退格的位置。但是一旦删除此文本,问题就会再次发生。

我特别关注,因为display: none的跨度是我正在使用的范围和选择库Rangy的组成部分。我发现使用Rangy有时会阻止Spans被删除,这似乎是根本原因。

0 个答案:

没有答案