2013-07-01 17 views
9

Kann ich eine bestimmte Anzahl von Zeilen (erfolgreich oder nicht) in den schreibgeschützten Modus setzen?CodeMirror: Besondere Zeilen readonly

Zum Beispiel: Ich habe ein Dokument, wo ich nicht möchte, dass der Inhalt einiger Abschnitte geändert wird (wie in Word, wo Sie Kopf- und Fußzeilenabschnitte einstellen können und Sie sie sperren können). Wer weiß, ob CodeMirror diese Funktion unterstützt?

Vielen Dank im Voraus!

Antwort

7

Mit Codemirror Version 3 Unterstützung für on und beforeChange wurde hinzugefügt; einfach fangen die Änderung, bevor sie und Cancelling geschieht es tun sollte:

// the line numbers to be "readonly" 
var readOnlyLines = [0,1,2,3]; 

// create the CodeMirror instance 
var editor = CodeMirror.fromTextArea(document.getElementById('input')); 

// listen for the beforeChange event, test the changed line number, and cancel 
editor.on('beforeChange',function(cm,change) { 
    if (~readOnlyLines.indexOf(change.from.line)) { 
     change.cancel(); 
    } 
}); 
+0

Ziemlich geradlinig! Ich habe gerade einige kleinere Änderungen hinzugefügt, um den Inhalt zwischen zwei nicht aufeinanderfolgenden Zeilen auch dann löschen zu können, wenn der Benutzer die schreibgeschützten Zeilen auswählt. Danke vielmals! –