在Chrome和Safari(可能还有其他基于Webkit的浏览器)中,即使在div失去焦点之后,仍然可以键入一个内容可编辑的div。
我构建了一个简单的示例来说明此问题:http://jsfiddle.net/yfcsU/3/
该示例包含两个元素:一个具有contenteditable="true"
的div,以及一个链接,该链接在单击它时将在contenteditable div上触发模糊事件。
单击链接时,可内容编辑的div失去焦点,但是您仍然可以键入div,任何按键都会使其重新聚焦。
在Firefox中,此行为与预期的工作方式不同:单击链接将使contenteditable div停止接受输入。
在Webkit中,是否有一种方法可以使contenteditable div失去焦点后停止接受输入而不会在div上禁用contenteditable?
最佳答案
标记为正确的答案实际上是正确的,但是我将添加另一个可能更直接的解决方案。在contentEditable div上调用blur()之后,必须调用此命令:
window.getSelection().removeAllRanges();
在这里测试:http://jsfiddle.net/mareksuscak/oytdoxy8/
在我看来,它执行相同的工作,并解释了为什么它无法正常工作-通常在模糊时从输入元素中删除选择范围,但对于contentEditable div却无法执行,因此在输入任何字符/lib中断之后,它是再次集中。
关于webkit - 在Webkit下失去焦点之后,强制contenteditable div停止接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12353247/