spellcheck=false on contentEditable elements

為{幸葍}努か 提交于 2019-12-29 06:36:47

问题


For normal input elements you can turn off the spell checking by using a HTML attribute (at least under FF). The same spellcheck="false" does not seem to work on a contentEditable element. Is there another solution for contentEditable elements?


回答1:


I'm not sure if this is what you're getting at, but I was having what sounds like a similar problem with removing the spellcheck underline from contentEditable elements. The problem is, when you set the spellcheck attribute to false, any words that were underlined for spelling mistakes will keep this underline until you focus on the contentEditable element.

The following hack should do the trick:

element.spellcheck = false;
element.focus();
element.blur();

Hope that helps!




回答2:


In Gecko all contenteditable elements check spelling based on the spellcheck attribute/property on the <body> element.




回答3:


Based on what Neil said, I came up with this guy:

$('body').attr("spellcheck",false)

It defaulted all of my contenteditable divs to not use spell check. I plan on using .blur and .focus to enable spell check for individual divs as necessary.




回答4:


Even disregarding browser bugs you can't turn off the spell checking, all you can do is suggest to the user agent that it doesn't spell check stuff. If you look at the section of the spec where it describes the algorithm for determining what's spell checkable here's the first two steps:

  1. If the user has disabled the checking for this text, then the checking is disabled.
  2. Otherwise, if the user has forced the checking for this text to always be enabled, then the checking is enabled.

User preferences always override the attributes.



来源:https://stackoverflow.com/questions/5601431/spellcheck-false-on-contenteditable-elements

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!