2011年6月7日火曜日

JavaScriptでIE向けスペルチェッカー

というタイトルで推測できると思うが、ActiveXObject('Word.Application')を使うのでJScriptでIE向けスペルチェッカーを動かすという意味。

JavaScriptでスペルチェッカー for IE - jsdo.it - Share JavaScript, HTML5 and CSSからzipで落としてIEでローカルファイルとして読み込めば多分できる(Wordが必要です)
(サーバ上だと何かうまく動かなかった。警告でまくるけどセキュリティ的に問題ありそうだし。。)

以下スペルチェック部分のソース。

function spellcheck(text) {
var result = [];
var app = new ActiveXObject('Word.Application');
var doc = app.Documents.Add();
doc.Content = text;
for (var i = 1; i <= doc.SpellingErrors.Count; i++) {
var spellingError = doc.SpellingErrors.Item(i);
for (var j = 1; j <= spellingError.Words.Count; j++) {
var word = spellingError.Words.Item(j);
var error = {};
error.word = word.Text;
error.start = word.Start;
error.length = word.Text.length;
error.suggestions = [];
var suggestions = word.GetSpellingSuggestions(word.Text);
for (var k = 1; k <= suggestions.Count; k++) {
error.suggestions.push(suggestions.Item(k).Name);
}
result.push(error);
}
}
return result;
}

詰まるところ、WordをActiveXから呼び出しているだけなので、Wordが必要だし何かローカルでないとうまく動かなかったし、ものすごく重いので、実用性なんか存在しない。

imageimage

これは以下のところで存在を知った。

元々のコードだと何か動かなかったので下を参考に少し直した。

リンクを見てわかるように、Webkit(Chromium)にスペルチェック APIができるような雰囲気だった。

0 コメント:

コメントを投稿