Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 20.10.2021, 19:56
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Так код который вставляет цитаты, вот этот:

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`);
    }
});


не в kide.js а в base.js или я что-то не понимю?
Ответить с цитированием
  #42 (permalink)  
Старый 20.10.2021, 20:02
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Ааа, ну так собственно, вроде все, сейчас он правда обрезает текст как только цитата добавляется в форму набора теста, но так тоже норм )
Ответить с цитированием
  #43 (permalink)  
Старый 20.10.2021, 20:17
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Да, вернул стили, подобрал нужное количество символов, теперь все именно так как хотелось, надеюсь с цитатами все. Рони ты как всегда гениален, спасибо!
Ответить с цитированием
  #44 (permalink)  
Старый 20.10.2021, 20:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
нужна функция которая выводит текст/строки на экран (но это по желанию) можно обрезать там.
Ответить с цитированием
  #45 (permalink)  
Старый 20.10.2021, 20:36
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Да мне кажется необходимости нет, нагромождения внутри поля ввода текста ни к чему, так, что пожалуй так как сейчас даже лучше. Йа довольный
Ответить с цитированием
  #46 (permalink)  
Старый 06.12.2021, 12:57
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Еще раз здравствуйте.

Решил не создавать новую тему, поскольку почти все тоже самое, только сообщение нужно не цитировать, а копировать в буфер обмена. Сделал так:

document.addEventListener("click", ({ target }) => {
    if (target = target.closest('.K_copy')) {
        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; // Берем текст из клона
        text.execCommand("copy");
    }
});


Но ни в какую не копирует
Ответить с цитированием
  #47 (permalink)  
Старый 06.12.2021, 13:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
строка 7, заменить на
navigator.clipboard.writeText(text);
Ответить с цитированием
  #48 (permalink)  
Старый 06.12.2021, 13:09
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Пасиба, есть контакт
Ответить с цитированием
  #49 (permalink)  
Старый 08.04.2022, 18:21
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Привет мир.

Итак скрипт прекрасно цитирует сообщения:

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`);
    }
});


Так же он переносит курсор на следующую строку, но при цитировании сообщений отправленных до последнего обновления страницы, добавляет лишние теги <br>

<span class="KIDE_quote"> 19:33 - ать:    <br>        <br>        <br>        </span>


это не критично, но глаз не радует
Ответить с цитированием
  #50 (permalink)  
Старый 08.04.2022, 19:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
let text = clon.textContent.trim();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вроде видел статью, как вставить свой тег с помощью css ...но как то пробежал мимо Deff (X)HTML/CSS 2 09.07.2013 12:49
Как вставить !important в скрипт! lich Общие вопросы Javascript 2 22.05.2013 23:25
Подскажите как вставить переменную в RegExp c модификаторами Дмитрий-Solod Общие вопросы Javascript 2 16.11.2010 19:30
Mootools. Вставить html zeman Библиотеки/Тулкиты/Фреймворки 4 31.03.2009 11:24
Выделить цитату и вставить в форму за 2клика Nubi Элементы интерфейса 2 06.08.2008 12:15