タグを取り、選択したテキストをそのタグにラップするメソッドがあります。これに挿入されたノードの後にキャレットを挿入する
function wrap(tag)
{
var sel, range;
if (window.getSelection)
{
sel = window.getSelection();
if (sel.rangeCount)
{
range = sel.getRangeAt(0);
var selectedText = range.toString();
range.deleteContents();
range.insertNode(document.createTextNode('['+tag+']'+selectedText+'[/'+tag+']'));
}
}
}
この問題は、それがテキストをラップし(それらが入力されている)キャレットが挿入されたテキストの前に配置されたノードを挿入行うの後しかし、です。
テキストを挿入し、最後にキャレットを残す方法はありますか?
jQueryやその他のライブラリを使用せずに実行できるのであれば、私は好きですのでご注意ください。私はWebkit(Safari)で動作するために必要なだけです。
あなたは男です:) – endy
@phil mccull +1答えです。 「wrap」をクリックしたときに、そのdivにのみテキストを挿入し、ドキュメントの他の場所には挿入しないとどうなりますか? –
はリンクから私の質問への答えを得ました:http://stackoverflow.com/a/8340432/1407434、更新されたfiddle:http://jsfiddle.net/tM3mA/38/ –