Подтвердить что ты не робот

Как я могу установить значение редактора CodeMirror с помощью Javascript?

Я пытаюсь установить id4 в следующем коде:

<div id="id1">
    <div id="id2">
        <div id="id3">
            <textarea id="id4"></textarea>
        </div>
    </div>
</div>

Используя этот код:

document.getElementById('id4').value = "...";

И это:

document.getElementById('id3').getElementsByTagName('textarea')[0].value = "...";

Но ничего не работает.

ОБНОВЛЕНО:

textarea заменяется редактором CodeMirror. Как мне установить для него значение?

Большое спасибо за помощь!

4b9b3361

Ответ 1

Способ сделать это немного изменился с момента выпуска 3.0. Теперь это примерно так:

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

Ответ 2

Мне нравятся примеры. Попробуйте следующее:

CodeMirror.fromTextArea(document.getElementById(id), {
        lineNumbers: true
    }).setValue("your code here");

Ответ 3

CodeMirror ~ 4.6.0 вы можете сделать это, если у вас есть объект codemirror:

var currentValue = myCodeMirrorObject.cm.getValue();
var str = 'some new value';
myCodeMirrorObject.cm.setValue(str);

Ответ 4

Код, который у вас есть, должен работать. Наиболее вероятным объяснением этого является отсутствие элементов во время запуска. Если да, то решения должны быть либо:

  • Переместите JS так, чтобы он появился после создания элементов (например, перед </body>)
  • Задержка выполнения JS до тех пор, пока элементы не будут созданы (например, переместив его в функцию, назначаемую в качестве обработчика события onload)

Ответ 5

Это сработало для моей (довольно старой) версии CodeMirror:

var editor=CodeMirror.fromTextArea('textarea_id');

editor.setCode('your string');