Показать сообщение отдельно
  #1 (permalink)  
Старый 03.03.2021, 13:47
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Вставить цитату
Привет Мир!
Пытаюсь добавить чату возможность вставки цитат сообщений. Нюансов очень много но по порядку. Код формирующий сообщение:

kide.insertNewContent = function (uid, name, text, url, ti, color, rango, id, sesion, yo, hora, img) {
	if (text.replace(/ /g, "") != "") {
		let c = color.length > 0 ? 'style="color:#' + color + '" class="KIDE_msg"' : 'class="KIDE_dc_' + this.rangos[rango] + ' KIDE_msg"';
		let div = this.$('KIDE_msgs');
		let nodo = document.createElement('div');
		let insertO = this.$("KIDE_output");
		let s_hora;
		nodo.setAttribute('id', 'KIDE_id_' + id);
		nodo.setAttribute('class', 'KIDE_msg_top');
		if (this.show_hour)
			s_hora = '<span title="' + ti + '" class="KIDE_msg_hour">' + hora + '</span> ';
		else
			s_hora = '';
		let tmp = '';
		if (img && kide.show_avatar) {
			let style = kide.avatar_maxheight ? 'style="max-height:' + kide.avatar_maxheight + '" ' : '';
			tmp = '<img ' + style + 'src="' + img + '" class="KIDE_icono" alt="" /> ';
		}

		onclick = "kide.insertSmile(\''+name+\', ')";  //mod

		nodo.innerHTML = s_hora + tmp + '<span style="cursor: pointer" class="KIDE_' + this.rangos[rango] + '" onclick="kide.insertSmile(\'' + name + ', \')" oncontextmenu="event.preventDefault();kide.mensaje(\'' + name + '\', ' + uid + ', ' + id + ', \'' + url + '\', \'' + ti + '\', \'' + sesion + '\', ' + rango + ', \'' + img + '\')">' + name + '</span>: <span ' + c + '>' + this.filter_smilies(text) + '</span>';
		if (this.order == 'bottom') {
			this.insertAfter(nodo, insertO.lastChild);
		} else
			insertO.insertBefore(nodo, insertO.firstChild);
		if (!yo && this.sound == 1)
			this.play_msg_sound();
		this.ajustar_scroll();
	}
};


Попытался добавить переменную с айди кнопки которая которая будет вставлять текст:

let bquote = document.querySelector('#insertmsg');


добавить к ней событие:

bquote.onclick = "kide.insertSmile(\''+nodо+\')";


Разумеется не заработало.

Добавил функцию меняющую класс переменной "nodo"

nodo.onclick = function() { 
nodo.classList.toggle('selmsg');}


Работает. То есть сейчас Сейчас для начала нужно добавить строку которая будет по клику на элемент #insertmsg с помощью вотэтововот: kide.insertSmile добавлять данные из переменной nodo когда ей присвоен класс selmsg
Я еще сам четко в голове не оформил, как это все в итоге будет выглядеть, но с чего-то надо начинать )))
Ответить с цитированием