2013-11-14 8 views
5

Ich verwende CodeMirror, um einige Syntaxhervorhebungen in meinem Web vorzunehmen. Ich habe zwei Radiobuttons in meinem HTML erstellt. Und mein JavaScript-Code wird wie folgt:CodeMirror eine Editorinstanz löschen

if(flag == "C") 
    Editor = CodeMirror.fromTextArea(textArea, { 
    lineNumbers: true, 
    matchBrackets: true, 
    mode: "text/x-csrc" 
}); 
else if(flag == "Cpp") 
    Editor.off(0); 
    Editor = CodeMirror.fromTextArea(textArea, { 
    lineNumbers: true, 
    matchBrackets: true, 
    mode: "text/x-c++src" 
}); 

Es tut die Funktion der Syntax-Hervorhebung abgeschlossen haben, aber das Problem ist, wenn ich das mehrmals Optionsfeld klicken, erstellen Sie es nur so viele, wie ich auf, und das ist ärgerlich . Also frage ich mich, gibt es eine Möglichkeit, die vorherige Editor-Instanz zu löschen, bevor ich eine neue erstelle?

Antwort

1

Editoren, die mit fromTextArea erstellt wurden, verfügen über eine toTextArea Methode, um sie zu entfernen. Alternativ erstellen Sie den Editor einfach einmal und verwenden Sie Editor.setOption("mode", "text/x-csrc").

+0

Ja, ToTextArea-Methode ist was ich will. Ich habe schon mein Problem gelöst. Danke an alle Marjin und Bren1818. – user2992389

+0

können Sie bitte Geige bereitstellen. – Goku

2

cm.getWrapperElement() → Element Gibt den DOM-Knoten zurück, der den Editor darstellt, und steuert dessen Größe. Entfernen Sie diese aus Ihrem Baum, um eine Editorinstanz zu löschen.

Siehe Dokumentation. http://codemirror.net/doc/manual.html

Verwandte Themen