JavaScript не может прокрутить контекст <textarea>при использовании NicEdit - PullRequest
0 голосов
/ 04 января 2019

Я начинающий программист, поэтому у меня возникают проблемы с тем, чтобы заставить это работать.

У меня есть javascript, который прокручивает содержимое тега <textarea> до низа при нажатии кнопки, но когда я добавляю плагин NicEditв нем скрипт не работает.

Я уже попробовал все альтернативные способы заставить его работать, создавая внешние div и обертки, но я уверен, что это coz из NicEdit.

Рабочий скрипт без NicEdit: http://jsfiddle.net/gab4qhc1

Не работающий скрипт с NicEdit: http://jsfiddle.net/sgdLzjau

Пожалуйста, помогите мне заставить скрипт работать вместе с nicedit.

Спасибо

1 Ответ

0 голосов
/ 04 января 2019

Прежде всего, я бы порекомендовал вам использовать CKEditor или TinyMCE, потому что nicEdit не находится в активной разработке (http://nicedit.com/docs.php).

Придем к проблеме, Произошла ошибка вconsole bkLib.domLoad[i] is not a function (я не знаю, что такое bkLib), поэтому я удалил эту функцию и удалил код JS

nicEditors.allTextAreas({buttonList : ['fontSize','bold','italic','underline','strikeThrough','subscript','superscript']});

из файла HTML и добавил в файл сценария (ядумаю, что это хорошо, если возможно разделить код JS и HTML) следующим образом

HTML

<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.0.js"></script>
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>

<textarea id="textarea" cols=30 rows=5 >
    Please presse enter Please presse enterPlease presse enter
    Please presse enterPlease presse enterPlease presse enter
    Please presse enterPlease presseenter
    Please presse enterPlease presse enter
    Please presse enter
</textarea>

<button id="button">click</button>

Script

$(document).ready(function(){
    nicEditors.allTextAreas({buttonList : ['fontSize','bold','italic','underline','strikeThrough','subscript','superscript']});

    $("#button").click(function(){
        var textArea = $('.nicEdit-main');/*replace #textarea with .nicEdit-main*/
        textArea.scrollTop( textArea[0].scrollHeight - textArea.height()   );
    });  
});

(Не нужно изменять CSS)

Почему селектор #textarea не работает, а .nicEdit-main работает

Итак, причина этого заключается в каждомТекстовый редактор на основе HTML использует собственную оболочку вместо textarea, чтобы сделать ее более настраиваемой, например применять эффекты bold, italic, а в nicEdit они используют div с классом nicEdit-main.

Надеюсь, это поможет вам решить вашу проблему. Счастливого кодирования ... :)

...