1

私はウェブブラウザコントロールを使用しています。execCommand の挿入位置を、現在選択されている単語の末尾に移動するにはどうすればよいですか?

例:

| | <- 現在のキャレット位置

So|eword -> move -> Someword| -> execCommand は現在の単語の後に実行されます

私がやりたいのは、単語を壊さずに行を挿入することです。今起こることは次のとおりです。

Somew|ord -> 行

やや


順序

起こるべきことは次のとおりです。

Somew|ord -> 行


サムワード

4

1 に答える 1

0

これは非常にハッキーなので、投稿するのが恥ずかしいのですが...次のようなことを行うことで、「単語を壊さずに行を挿入する」「Webブラウザーコントロールを使用する」を実現できます。

webBrowser1.Url = 
            new Uri("javascript:" +
                "var tr=document.selection.createRange();" +
                "tr.expand('word');" +
                "tr.collapse(false);" +
                // "tr.select();" // Necessary to actually move the caret
                "tr.pasteHTML('<hr>');");

操作するドキュメントが Web ブラウザーに読み込まれ、ユーザーが後に行を挿入するテキストを選択した後。キャレットも移動する必要がある場合は、 のtr.select()後にtr.collapse().

ただし、execCommand を使用しないため、目的には適さない場合があります。たぶん、他の誰かがこれを少しきれいにする方法を見つけ出すことができます...

于 2009-02-04T17:57:31.073 に答える