Этот скрипт — удобный инструмент для форумов или чатов, который позволяет быстро цитировать других пользователей.
Вместо того чтобы копировать текст вручную, вы просто выделяете нужную фразу мышкой, и скрипт сам оформляет её в красивую цитату с обращением к автору.


Содержание и возможности
* Автоматический захват текста: Скрипт «понимает», какой фрагмент на странице вы выделили.
* Умное форматирование: Добавляет жирный шрифт для имени пользователя и заключает текст в теги Цитата.
* Быстрый переход: После нажатия скрипт сам ставит курсор в поле ввода сообщения, чтобы вы могли сразу начать писать ответ.
* Совместимость: Работает как в современных, так и в старых браузерах.
Как это работает (простыми словами)
* Поиск текста: Когда вы вызываете функцию, она проверяет, выделили ли вы что-нибудь на странице.
* Сборка сообщения: Скрипт берет имя пользователя (которое передается в функцию) и ваш выделенный текст, склеивая их в одну строку вида: Имя, quote Текст /quote.
* Вставка: Программа находит на странице окно чата (по ID mchatMsgF) и дописывает туда готовую цитату.


Главные фишки скрипта
* Экономия времени: Не нужно переключаться между окнами и нажимать «копировать-вставить».
* Чистота кода: Скрипт очень легкий и не нагружает страницу.
* Универсальность: Его легко адаптировать под любой сайт, просто изменив ID поля ввода.


Установка
Главная Управление дизайном Мини-чат Редактирование шаблонов Вид материалов где будет находится кнопка для цитирования

Код
<a href="javascript:void('Quote')" onclick="quoteSelection('$USERNAME$');return false;" class="fa-quote"><i class="fa-solid fa-quote-left"></i></a>


тут же в самый низ данный скрипт

Код
<script>function quoteSelection(username) {  
let selectedText = '';  
// Получаем выделенный текст  
if (window.getSelection) {  
selectedText = window.getSelection().toString();  
} else if (document.selection && document.selection.type != 'Control') {  
selectedText = document.selection.createRange().text;  
}
// Форматируем цитату  
let quoteText = `[b]${username},[/b] [quote]${selectedText}[/quote] `;  

// Находим поле ввода и добавляем текст  
let inputField = parent.window.document.getElementById('mchatMsgF');  
inputField.focus();  
inputField.value += quoteText;  
  };  
  // Разработчик by jaguar37rus site htmlstart.ucoz.net  
</script>


Что ещё можно добавить:
* Авто-скролл: Страница сама прокрутится к чату, чтобы вы сразу видели результат.
* Проверка на пустоту: Если вы случайно нажали кнопку, не выделив текст, скрипт просто обратится к пользователю по имени, не создавая пустую цитату.
* Очистка выделения: После того как цитата улетела в чат, выделение с текста снимется (так удобнее).


Код
<script>// Разработчик by jaguar37rus site htmlstart.ucoz.net  
  function quoteSelection(username) {
let selectedText = '';

// 1. Получаем выделенный текст  
if (window.getSelection) {
selectedText = window.getSelection().toString();
} else if (document.selection && document.selection.type != 'Control') {
selectedText = document.selection.createRange().text;
}  

// 2. Форматируем результат  
// Если текст выделен — делаем цитату, если нет — просто обращение  
let quoteText = selectedText
? `[b]${username}[/b], [quote]${selectedText}[/quote] `
: `[b]${username}[/b], `;

// 3. Находим поле ввода (mChat)  
let inputField = parent.window.document.getElementById('mchatMsgF');

if (inputField) {  
inputField.focus();
inputField.value += quoteText;

// 4. ФИШКА: Плавная прокрутка к полю ввода  
inputField.scrollIntoView({ behavior: 'smooth', block: 'center' });  

// 5. Очищаем выделение (чтобы не мешало)  
window.getSelection().removeAllRanges();  
}  
  };</script>


Почему это круто:
* Никакого мусора: Больше не будет пустых тегов quote /quote, если вы забыли выделить фразу.
* Фокус на главном: Плавный скролл (smooth scroll) выглядит профессионально и помогает не потеряться на длинной странице форума.
* Юзабилити: Снятие выделения после вставки — это признак хорошего тона в веб-разработке.


Попробуйте — и ваши читатели скажут "спасибо".

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
HTMLSTART » Скрипты UCOZ » Мини-чат » Удобный скрипт для цитат в чате: Как упростить обсуждения в блоге