javascript - CodeMirror markText 不工作

标签 javascript codemirror codemirror-modes ui-codemirror

我正在像这样使用 CodeMirror 来向用户显示一些 XML 响应。

HTML 代码

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

JS 代码

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");
};

现在,当我尝试使用不起作用的 markText 突出显示某些特定行时。当然,“xml”模式有效,但第 5 行没有用红色突出显示。

非常感谢您的帮助。已经 3 天了,我一直在努力完成它。谢谢。

最佳答案

您需要将选项参数指定为映射,而不是字符串:{css: "color : red"}

有关详细信息,请参阅文档:https://codemirror.net/doc/manual.html#markText

这是一个基于您的示例的代码片段,显示它按照您描述的方式工作(您可以忽略运行该代码片段所需的不必要的 CSS/JS 设置和示例 xml):

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>

关于javascript - CodeMirror markText 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36048167/

相关文章:

javascript - 在 TypeScript 中扩展 Error 类时,接口(interface)不被应用

javascript - 将 PHP 页面输出插入 jquery 变量

CodeMirror 将两个字符转换为单个 unicode 字符(例如 >= 到 ≥)

javascript - 是否可以混合使用 CodeMirror : Velocity mode and the CodeMirror: HTML mixed mode?

reactjs - 如何在React + Browserify环境中应用Codemirror模式

javascript - 菜单叠加问题

javascript - 将上下文信息绑定(bind)到 GraphQL 类型中?

javascript - 无法让折叠装订线以 xml 模式显示在 CodeMirror 中

javascript - CodeMirror:是否可以传递\注册模式作为委托(delegate)函数?

javascript - 在同一页面(HTML 和 CSS)上使用 Codemirror 两次导致仅应用一种突出显示模式