編集:これを投稿したとき、簡単に実行できるコードを見つけました。:D
この投稿には、私にとって完璧に機能する jQuery ソリューションがあります。
ユーザーがボタンをクリックすると、テキストエリア内の選択したテキストの周りに BBCode タグを追加するスクリプトがあります。ボタンをクリックすると、タグが追加されますtextarea.focus()
。タグが追加されたため、テキスト選択はタグを追加する前と同じ位置にあります。その結果、現在選択されているのは、元の選択されたテキストではありません。
現在のテキストエリアのコードは次のとおりです。
$('div[id*="custom_button"]').click(function () {
var start = textarea[0].selectionStart;
var end = textarea[0].selectionEnd;
var replacement = '[stuff]' + textarea.val().substring(start, end) + '[/stuff]';
textarea.val(textarea.val().substring(0, start) + replacement + textarea.val().substring(end, textarea.val().length));
textarea.focus()
});
どういうわけか選択したテキストを取得し、タグを追加した後にそれを見つけ、最後にそれを再選択することを考えていました...それはまったく可能ですか? 私が見逃している簡単な解決策はありますか?