Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не могу программно изменить значение textarea в онлайн редакторе (https://javascript.ru/forum/misc/59032-ne-mogu-programmno-izmenit-znachenie-textarea-v-onlajjn-redaktore.html)

rusik 23.10.2015 06:48

не могу программно изменить значение textarea в онлайн редакторе
 
Вложений: 1
Здравствуйте!

Нашел онлайн редактор http://codemirror.net/
Внешне выглядит неплохо, но вот проблема:
не могу программно (через javascript) изменить значение textarea!

вот пример:
http://partnerr.ru/_xq/xq.html

Нажимаю на кнопку "Изменить textarea id="code"
и ничего не происходит

посмотрел на элементы (см.прикрепленный файл)
а там textarea является скрытым элементом и хотя он программно меняется, но на внешний вид это никак не влияет.

Что делать?

А может посоветуете как самому в поле textarea сделать подсветку элементов?

Заранее спасибо!

rusik 23.10.2015 06:58

За формирования внешнего вида в http://codemirror.net/
отвечает вот этот код

<script> 
      var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
        lineNumbers: true,
        matchBrackets: true,
        theme: "xq-dark"
      });
    </script>


когда я назначаю новое значение textarea, я попробовал сделать так:

function change_value(val) {

    var param3d = document.getElementById("code");
    if (param3d) {
        param3d.value = val;


        var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
            lineNumbers: true,
            matchBrackets: true,
            theme: "xq-dark"
        });



        alert("param3d.value = " + param3d.value);

    }

}


и вот что получилось:
http://partnerr.ru/_xq_2/xq.html

все равно - не то.
я понимаю, что надо на сервере страницу формировать, тогда будет работать, а без этого никак? Есть ли какое-то решение или другой онлайн редактор, чтобы можно было работать только с javascript, без сервера?

А самому онлайн редактор тяжело сделать? У кого-нибудь есть опыт? Или там все равно будет та же проблема?

rusik 23.10.2015 07:10

и еще непонятно
вот этот красивый "textarea", на темном фоне с номерами строк итд
это на самом деле большой набор дивов:
<div class="CodeMirror-scroll" tabindex="-1"> итд

Теперь, например, пользователь его отредактировал и теперь я хочу этот текст отправить куда-то себе (в моем случае хотел делать через ajax) или где-то сохранить и как мне его сохранить в целом виде? Собирать кусками по всем дивам? Это вообще не вариант.

rusik 23.10.2015 08:16

вот так попробовал

var textArea = document.getElementById('code');
        var editor = CodeMirror.fromTextArea(textArea);
        editor.getDoc().setValue('var msg = "Hi";');


тоже не работает!

laimas 23.10.2015 11:08

Цитата:

Сообщение от rusik
и еще непонятно
вот этот красивый "textarea", на темном фоне с номерами строк итд
это на самом деле большой набор дивов:


Визуальные html-редакторы онлайн редакторы работают за счет этого, а изменения в нем переписываются в textarea.

rusik 24.10.2015 13:19

и что делать?

laimas 24.10.2015 16:01

Изменять там, где происходит ввод, то есть в div контейнере.


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