По-моему, проблема здесь:
if (post_content_1.indexOf(selected_text_1) != -1)
Здесь проверяется, является ли выделенный текст частью общего текста поста. Если есть смайл, в переменной post_content_1 есть его текстовое отображение, а в selected_text_1 его нет, соответственно, условие не срабатывает. Если совсем убрать эту проверку, то может вставляться текст, выделенный в другом посте. Чтобы обойти это, нужно в функции getSelectedText() проверять, находится ли выделенный текст в том же посте, где нажата кнопка. Для этого можно передавать ей значение qid_param при вызове из QuickQuote(qid_param). Если текст не из нужного поста, возвращать пустое значение, а из QuickQuote() тогда можно будет убрать эту проверку:
function QuickQuote(qid_param)
{
var selected_text = getSelectedText();
var quick_post_value = document.getElementsByName('req_message');
var cur_pos = getCaretPos();
var text = quick_post_value[0].value;
var text_below = text.substring(0, cur_pos);
var text_above = text.substring(cur_pos, text.length);
if (selected_text == undefined || selected_text == '')
{
var quote = '[quote=' + pun_quote_authors[qid_param] + ']' + ParseMessage(pun_quote_posts[qid_param]) + '[/quote]';
quick_post_value[0].value = text_below + quote + text_above;
}
else
{
var quote = '[quote=' + pun_quote_authors[qid_param] + ']' + selected_text + '[/quote]';
quick_post_value[0].value = text_below + quote + text_above;
}
setCaretPos(text_below.length + quote.length);
}
Разработка AHK-скриптов:
e-mail
dfiveg@mail.ruTelegram
jollycoder