问题
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:
- If the user has disabled the checking for this text, then the checking is disabled.
- 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