2016-03-16 14 views
5

Używam CodeMirror w ten sposób, aby pokazać trochę odpowiedzi XML dla użytkownika.CodeMirror markText nie działa

kod HTML

<body> 
    <textarea id="cm" >#{bean.xmlResponse}</textarea> 
</body> 

JS KOD

window.onload = function() {    
    var editor = CodeMirror.fromTextArea(document.getElementById('cm'), { 
        mode: "xml", 
        theme: "default" 
       }); 

    editor.getDoc().markText({line:5,ch:2},{line:5,ch:9},"color : red"); 
}; 

Teraz gdy próbuję podkreślić jakąś szczególną linię przy użyciu markText który nie działa. Oczywiście działa tryb "xml", ale linia 5 nie jest podświetlona kolorem czerwonym.

Naprawdę doceniam twoją pomoc. Od 3 dni próbuję to zrobić. Dzięki.

Odpowiedz

6

musisz określić parametr opcji mapy, a nie ciąg: {css: "color : red"}

Zobacz dokumentację Więcej szczegółów: https://codemirror.net/doc/manual.html#markText

Oto fragment oparty na swoim przykładzie, że pokazuje to działa jak ty opisać (można pominąć niepotrzebne CSS/JS konfiguracji i przykładowy xml, które były wymagają mieć przebieg urywek):

var editor = CodeMirror.fromTextArea(document.getElementById('cm'), { 
 
    mode: "xml", 
 
    theme: "default" 
 
}); 
 

 
editor.getDoc().markText({ 
 
    line: 5, 
 
    ch: 10 
 
}, { 
 
    line: 5, 
 
    ch: 39 
 
}, { 
 
    css: "color : red" 
 
});
@import "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/codemirror.css"
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/codemirror.js"></script> 
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/mode/xml/xml.js"></script> 
 
<textarea id="cm"> 
 
    <note> 
 
    <to>Tove</to> 
 
    <from>Jani</from> 
 
    <heading>Reminder</heading> 
 

 
    <body>Don't forget me this weekend!</body> 
 
    </note> 
 
</textarea>

+0

Awesome !! To działa. Wielkie dzięki. – Gans

+0

Wyzywająco zrobiłeś mój weekend (-: dziękuję! – jonathana