@rinaz22

Как на чате выделить сообщение админа?

Всем привет! Есть сайт, на котором установлен чат постороннего сервиса. Чат работает через js, без iframe, т.е. стили поменять несложно. Но вот возникла проблема. Надо определить id отправителя и если он равняется 1, то поменять стиль текста только этого сообщения.
// Id определяется так: 
var currentId = newMessage.creatorId;
// Сообщение выводится так:
return result.acceptMessage();

Код, который указал выше, это пишется в админке на том сервисе чата.
Этот код меняет цвет текста сообщения, он указывается в моем файле(т.е. на той странице, где я хочу поставить этот чат):
ChatbroLoader({
chatBodyTextColor: '#260101'
});

Я не понимаю как объединить эти 2 функции, т.к. один работает на стороннем сервере, а другой на моем.
Спрашивал у Тех.поддержки этого чата. Они сказали, что такой функции нет, но сделать можно через кастом css.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
@GrigorySvetov
Хочу заметить такой момент, что средствами CSS тут точно не поможешь. CSS - очень умный язык стилей, но не более того. Поэтому если смотреть, то лучше всего просто поискать, как бы Вы могли определить автора сообщения наиболее грамотно (т.е. откуда взять id).
Вы и сами себе поможете, решив именно эту проблему.

Думаю, что как всякая порядочная компания предоставит для таких целей не текст (в JS'е точно), а объект (например, JSON-объект). Там и найдется свойство "creatorId", условно говоря.

Но нет, CSS работает исключительно с HTML. Если по структуре HTML (или пользовательскому поведению (пример - наведение курсора на ссылку: ссылка меняется)) нельзя чего-то определить, то CSS этого просто правда "не знает". Следовательно, чтобы админские сообщения чем-то отличались от сообщений, написанных другим creatorId, ... нужно как-то вывести это в саму структуру HTML'я (например, особым классом сообщений).

И ещё... Не очень ясно, хотелось бы уточнить... Где этот скрипт выполняется и куда отсылаются результаты. Потому что если Вы в html-странице пишете просто <script src="имя скрипта.js"></script>, то на самом деле у каждого пользователя выполняется этот скрипт. Более того, не исключаю и такой возможности (если скрипт не внешний, то точно работает, а так не гарантирую), что можно ниже этого <script> написать ещё свой скрипт, в котором все сообщения (объектам newMessage), "спрашивают", кто из них имеет id отправителя ==1. Найденные помечаются особым классом и так выводятся. А CSS просто обрабатывает их класс.
Ответ написан
FeNUMe
@FeNUMe
Вам на уровне JS нужно всем сообщениям с нужным айдишником навесить доп.класс и уже для него прописать стили в CSS. Но где именно этот класс навешивать так просто не подскажу, слишком мало инфы. Если я правильно понял, то у вас есть возможность в админке влиять на выдачу чата через свой код и существующие функции, потому стоит присмотреться к функции вывода сообщений и поискать возможность из нее получить ссылку на объект сообщения, а потом уже стандартно добавить класс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы