it-swarm.com.de

Wie kann ich den Wert eines CodeMirror-Editors mit Javascript einstellen?

Ich versuche, id4 im folgenden Code zu setzen:

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

Mit diesem Code:

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

Und das:

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

Aber nichts geht.

AKTUALISIERTE:

Die Variable textarea wird durch den CodeMirror-Editor ersetzt. Wie lege ich Wert darauf?

Vielen Dank für die Hilfe!

27
Dmitry

Die Vorgehensweise hat sich seit der Veröffentlichung von 3.0 leicht geändert. Es ist jetzt so etwas:

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

Ich mag Beispiele. Versuche dies:

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

CodeMirror ~ 4.6.0 können Sie dies tun, vorausgesetzt, Sie haben ein Codemirror-Objekt:

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

Der Code, den Sie haben, sollte funktionieren. Die wahrscheinlichste Erklärung dafür ist, dass die Elemente nicht vorhanden sind zum Zeitpunkt, zu dem Sie sie ausführen . Wenn ja, sind die Lösungen entweder:

  • Verschieben Sie den JS so, dass er angezeigt wird, nachdem die Elemente erstellt wurden (z. B. bis kurz vor </body>).
  • Die Ausführung des JS verzögern, bis die Elemente erstellt wurden (z. B. durch Verschieben in eine Funktion, die Sie als onload-Ereignisbehandlungsroutine zuweisen)
1
Quentin