Ubivectel,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Еще бы ограничить кол-во символов в цитате, меня хватило только на такое:
(function(){ var cut = document.getElementsByClassName('KIDE_quote'); for( var i = 0; i < cut.length; i++ ){ cut[i].innerText = cut[i].innerText.slice(0,20) + '...'; } })(); Но оно во первых не работает, а во вторых наверное дико создавать для этого отдельную функцию... |
Цитата:
Используя свойства Css max-width/max-height. Что бы вставить многоточие, вместо отрезанного текста используют text-overflow: ellipsis; |
С этого начал разумеется. Но там нагромождение тегов с заморочными стилями. А text-overflow: ellipsis;требует display: inline-block. На крайняк так и сделаю конечно, но на JS было бы в данном случае более красивым решением.
|
Цитата:
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div> <div class="KIDE_quote">Lorem ipsum dolor sit amet.</div> <div class="KIDE_quote">Est laboriosam ipsam numquam tempore.</div> <div class="KIDE_quote">Quos, porro consequatur itaque at?</div> <div class="KIDE_quote">Dolorum, quis recusandae enim minus!</div> <div class="KIDE_quote">A, nisi odio id distinctio.</div> <div class="KIDE_quote">Unde, explicabo amet officia placeat.</div> <div class="KIDE_quote">Iure assumenda ad labore deserunt?</div> <div class="KIDE_quote">Praesentium, deserunt eaque accusantium assumenda.</div> <div class="KIDE_quote">Fuga, odio incidunt accusantium perspiciatis.</div> <div class="KIDE_quote">Repudiandae labore eligendi perspiciatis alias?</div> </div> <script> (function() { var cut = document.getElementsByClassName('KIDE_quote'); for (var i = 0; i < cut.length; i++) { cut[i].innerText = cut[i].innerText.slice(0, 20) + '...'; } })(); </script> </body> </html> |
Мммм.. то есть должно работать? Я вставлял вот так:
document.addEventListener("click", ({ target }) => { if (target = target.closest('.qutes')) { target = target.closest('.KIDE_msg_top') let clon = target.cloneNode(true); // Делаем копию узла с потомками clon.querySelectorAll(".KIDE_quote").forEach(el => el.remove()); // Удаляем из копии все span.KIDE_msg let text = clon.textContent; // Берем текст из клона kide.insertSmile(`[QUOTE]${text}[/QUOTE]\n`); } }); (function(){ var cut = document.getElementsByClassName('KIDE_quote'); for( var i = 0; i < cut.length; i++ ){ cut[i].innerText = cut[i].innerText.slice(0,20) + '...'; } })(); Не работает |
Цитата:
|
Ты код этого чата давно лучше чем я знаешь ))))
В файле https://noviy-kovcheg.ru/components/com_kide/js/base.js строка 1196 |
Ubivectel,
я могу только догадываться, что ты хочешь сделать, поэтому пока подсказать не могу))). |
Ubivectel,
ищи функцию которая выводит <span class="KIDE_quote"> и это не kide.onLoad. а пока так вместо #36 document.addEventListener("click", ({ target }) => { if (target = target.closest('.qutes')) { target = target.closest('.KIDE_msg_top') let clon = target.cloneNode(true); // Делаем копию узла с потомками clon.querySelectorAll(".KIDE_quote").forEach(el => el.remove()); // Удаляем из копии все span.KIDE_msg let text = clon.textContent; // Берем текст из клона if(text.length > 20) text = text.slice(0,17) + '...' kide.insertSmile(`[QUOTE]${text}[/QUOTE]\n`); } }); |
Часовой пояс GMT +3, время: 15:30. |