Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставить цитату (https://javascript.ru/forum/misc/82027-vstavit-citatu.html)

Ubivectel 20.10.2021 19:56

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

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 или я что-то не понимю?

Ubivectel 20.10.2021 20:02

Ааа, ну так собственно, вроде все, сейчас он правда обрезает текст как только цитата добавляется в форму набора теста, но так тоже норм )

Ubivectel 20.10.2021 20:17

Да, вернул стили, подобрал нужное количество символов, теперь все именно так как хотелось, надеюсь с цитатами все. Рони ты как всегда гениален, спасибо! :thanks:

рони 20.10.2021 20:29

Ubivectel,
нужна функция которая выводит текст/строки на экран (но это по желанию) можно обрезать там.

Ubivectel 20.10.2021 20:36

Да мне кажется необходимости нет, нагромождения внутри поля ввода текста ни к чему, так, что пожалуй так как сейчас даже лучше. Йа довольный :dance:

Ubivectel 06.12.2021 12:57

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

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

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


Но ни в какую не копирует :help:

рони 06.12.2021 13:06

Ubivectel,
строка 7, заменить на
navigator.clipboard.writeText(text);

Ubivectel 06.12.2021 13:09

Пасиба, есть контакт :thanks:

Ubivectel 08.04.2022 18:21

Привет мир.

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

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>


это не критично, но глаз не радует :help:

рони 08.04.2022 19:17

Ubivectel,
let text = clon.textContent.trim();

Ubivectel 08.04.2022 19:23

Все отлично, спасибо! :victory:


Часовой пояс GMT +3, время: 17:02.