webkit - 在Webkit下失去焦点之后,强制contenteditable div停止接受输入

标签 webkit contenteditable

在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/

相关文章:

javascript - 如何让 Android 响应触摸拖动?

ios - JavaScript 无法在 iOS 的 WKWebView 中工作

css - 为什么 "content"在 webkit 浏览器中有错误?

javascript - 在 contenteditable div 中插入图像

javascript - div 中的 contentEditable javascript 插入符号位置

javascript - 对于所见即所得编辑器,在 div 上使用 contenteditable 有多可靠?

ios - 如何在 WKWebView 上的指定位置获取消息?

html - "webkit-background-clip: text"相当于 Internet Explorer 11

Firefox contenteditable 光标问题

Jquery 范围选择 contenteditable 上的上一个元素 ="false"