【发布时间】:2012-04-16 13:15:35
【问题描述】:
我正在使用 contenteditable div 结合 rangy Javascript 库在光标位置插入 HTML。
div 的内容通常如下所示:
<div contenteditable="true">
"Hello "
<button contenteditable="false" data-id="147">@John Smith</button>
" "
</div>
用户在按下“@”时会得到建议,然后在被选中时作为按钮插入(ala Google Plus)。我还在此按钮后插入了&nbsp;。
当您按退格键(在第一次删除 &nbsp; 之后)时,Chrome/Safari/Firefox 中的按钮会被删除,但在 IE8 中不会。在 IE8 中,光标只是跳过按钮而不删除它。在 IE8 中更奇怪的是,如果您将 &nbsp; 留在按钮旁边 - 而是将光标放在按钮旁边 - 它会删除退格键上的按钮。所以当光标右侧有一个&nbsp; 时会很高兴。
有谁知道我需要什么才能让 IE8 独立运行。在退格键上删除按钮而不需要光标右侧的&nbsp;? (有关这种奇怪行为的一些信息也可能有所帮助)
附:其他版本的IE我没测试过
【问题讨论】:
-
为什么按钮上有 contenteditable=false?
-
这样当您点击退格键或点击删除时(这目前在 Chrome/Safari/Firefox 中有效),它会(一次性)从 DOM 中删除它。如果 contenteditable=true 则按钮的文本变为可编辑的,这不是我的用例。
-
酷我不知道。 (我之前没有在 contEd 中处理过输入)。如何处理退格键并检查选择范围内第一个节点的上一个节点?
-
我不确定如何检查选择范围内第一个节点的前一个兄弟节点。我知道你可以删除一个范围的内容。指针?
标签: javascript html internet-explorer-8 contenteditable rangy