8

私はブラウザベースのQC/データ入力アプリを作成しています。このアプリを使用すると、当然のことながら大量のエラーが発生するOCRedファイルを編集できます。データのチャンクはチェックできるようにテキストエリアに配置されますが、赤い下線は、ユーザーが手動でスペルミスのある単語にカーソルを置いた場合にのみ表示されます。

WebKitに小さな赤いスペルチェックの下線をtextareasに追加するように強制する方法はありますか?

4

3 に答える 3

11

基本的に、選択APIを使用して各単語の上に挿入ポイントを移動し、Safariでその単語を強調表示する必要があります。これが最初の1000語をスキャンする例です...

textarea = document.getElementById("mytextarea");
textarea.focus();

var selection = window.getSelection();
selection.modify("move", "backward", "line");
for (var i = 0; i < 1000; i++ ) {
    selection.modify("move", "forward", "word");
}

// Remove focus from the element, since the word under
// the cursor won't have a misspelling marker.
textarea.blur();

このコードは、WebKitLayoutテストスイートから削除されました。

于 2011-03-07T15:56:58.250 に答える
2

これが実際に機能するかどうかはわかりませんが、選択したもので遊んでみてください。つまり、テキストエリアを更新した後(そしてそれを「更新」して赤い下線を表示したい場合)、次のようなことができるようになる可能性があります。

var length = document.getElementById('TEXTAREA#your').value.length;
document.getElementById('TEXTAREA#your').setSelectionRange(0, length);

選択範囲の使用方法については、こちら をご覧ください。javascriptを使用してページ上の任意のテキストを選択するにはどうすればよいですか。またはGoogle検索を介して。

私の考えでは、選択範囲を作成する(または作成後にクリアする)と、別のブラウザイベントがトリガーされ、スペルチェックが更新される可能性があります...しかし、それは単なるアイデアです。textArea.valueを設定するのとまったく同じことを行う可能性があります(つまり、何もしません)。

于 2009-12-11T23:00:19.353 に答える
2

マークファウラーからの素晴らしい答え、ここにそれの改善があります:

textarea = document.getElementById("mytextarea");
textarea.focus();
var textLength = textarea.value.length;

var selection = window.getSelection();
for (var i = 0; i < textLength; i++ ) {
    selection.modify("move", "backward", "character");
}

// Remove focus from the element, since the word under
// the cursor won't have a misspelling marker.
textarea.blur();

したがって、任意の1000番号を回避でき、複数の行を処理できます。

于 2012-06-18T07:04:09.863 に答える