开发者

spellcheck=false on contentEditable elements

开发者 https://www.devze.com 2023-02-22 22:50 出处:网络
For normal input elements you can turn off the spell checking开发者_JAVA百科 by using a HTML attribute (at least under FF). The same spellcheck="false" does not seem to work on a contentEdit

For normal input elements you can turn off the spell checking开发者_JAVA百科 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?


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!


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


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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号