更新:这已被确定为 Chrome 中的错误。 (感谢@michael-robinson)
在 Chrome(至少 v22)中,我注意到即使在禁用 contentEditable 后,拼写检查“红色波浪形”下划线也可能保留。
我制作了一个 jsfiddle 来演示:jsfiddle demo .
即使我在禁用 contentEditable
之前设置了属性 spellcheck="false"
,它们仍然存在。
有人知道解决或解决这个问题的好方法吗?理想情况下,当内容可编辑时,我会保留内置的拼写检查功能。
最佳答案
您是否尝试过设置 (没有用,请参阅下面的其他解决方案)display: none
(使用 CSS)然后将显示设置回原来的样子?可能会强制 Chrome 重新绘制元素...
或者,您可以创建元素的副本(但禁用 contenteditable),将其放在原始元素之后并删除原始元素。
更新 1:第一个解决方案无效,但第二个有效。更新了 JSfiddle http://jsfiddle.net/RegVn/6/
更新 2:上述解决方案使用 innerHTML,它删除了破坏事件处理程序。它还会破坏选择/插入符号位置。
新方法使用 jQuery 的 clone()
方法(在深度克隆模式下)创建对象的副本(复制事件处理程序),并具有自定义函数来保存对选择,然后恢复它。请注意,选择保存/恢复功能在 ie6-8 中不起作用,但我认为这是可以接受的,因为问题已标记为 Chrome。更新的 JSfiddle:http://jsfiddle.net/RegVn/23/
关于html - 禁用编辑后,红色拼写检查波浪线仍保留在 chrome 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812348/