Редактировать: Так же, как я опубликовал это, я нашел кусок кода, который делает это легко. : 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()
});
Я думал о том, как каким-то образом получить выделенный текст, затем найти его после добавления тегов и, наконец, выбрать его заново ... это вообще возможно? Есть ли какое-то простое решение, которое мне не хватает?