web-dev-qa-db-ja.com

contentEditable要素のspellcheck = false

通常の入力要素の場合、次のことができます オフにする HTML属性を使用したスペルチェック(少なくともFFの下)。同じ spellcheck="false"はcontentEditable要素では機能しないようです。 contentEditable要素の別の解決策はありますか?

21
Zardoz

これがあなたが得ているものであるかどうかはわかりませんが、contentEditable要素からスペルチェックアンダースコアを削除することで同様の問題のように聞こえる問題がありました。問題は、spellcheck属性をfalseに設定すると、スペルミスで下線が引かれた単語は、contentEditable要素にフォーカスするまでこの下線が保持されることです。

次のハックでうまくいくはずです。

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

お役に立てば幸いです。

22
JacobEvelyn

Geckoでは、すべてのcontenteditable要素が、<body>要素のspellcheck属性/プロパティに基づいてスペルをチェックします。

14
Neil

ニールが言ったことに基づいて、私はこの男を思いついた:

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

スペルチェックを使用しないように、すべてのコンテンツ編集可能なdivがデフォルトで設定されました。必要に応じて、.blurと.focusを使用して、個々のdivのスペルチェックを有効にする予定です。

8
Adam Pascoe

スペルチェックをオフにできないブラウザのバグを無視しても、できることは、スペルチェックを行わないことをユーザーエージェントに提案することだけです。 仕様のセクション を見ると、スペルチェック可能なものを決定するためのアルゴリズムが説明されています。最初の2つのステップは次のとおりです。

  1. ユーザーがこのテキストのチェックを無効にした場合、チェックは無効になります。
  2. それ以外の場合、ユーザーがこのテキストのチェックを常に有効にするように強制した場合、チェックは有効になります。

ユーザー設定は常に属性を上書きします。

0
robertc