Как я могу установить значение редактора CodeMirror с помощью Javascript? - PullRequest
28 голосов
/ 05 декабря 2011

Я пытаюсь установить 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.Как мне установить его значение?

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

Ответы [ 4 ]

48 голосов
/ 11 января 2014

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

var textArea = document.getElementById('myScript');
var editor = CodeMirror.fromTextArea(textArea);
editor.getDoc().setValue('var msg = "Hi";');
9 голосов
/ 23 мая 2012

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

CodeMirror.fromTextArea(document.getElementById(id), {
        lineNumbers: true
    }).setValue("your code here");
2 голосов
/ 05 апреля 2015

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

var currentValue = myCodeMirrorObject.cm.getValue();
var str = 'some new value';
myCodeMirrorObject.cm.setValue(str);
1 голос
/ 05 декабря 2011

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

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