web-dev-qa-db-ja.com

Javascriptを使用してCodeMirrorエディターの値を設定するにはどうすればよいですか?

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エディターに置き換えられました。値を設定するにはどうすればよいですか?

助けてくれてありがとう!

28
Dmitry

これを行う方法は、3.0のリリース以降わずかに変更されています。現在は次のようになっています。

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

私は例が好きです。これを試して:

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

CodeMirror〜4.6.0では、codemirrorオブジェクトがあると仮定してこれを行うことができます。

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

動作するはずのコード。失敗する可能性が最も高いのは、要素が存在しないということです実行時。その場合、解決策は次のいずれかです。

  • 要素が作成された後に表示されるようにJSを移動します(例:</body>
  • 要素が作成されるまでJSの実行を遅らせます(たとえば、onloadイベントハンドラーとして割り当てる関数に要素を移動することにより)
1
Quentin