CodeMirror 2 - 仅突出显示(无编辑器)
CodeMirror 2可以用来突出显示
DIV
或PRE
标签中的代码(没有编辑器)吗?
像CodeMirror 1曾经能够使用hightlightText()函数吗?
例如:http://codemirror.net/1/highlight.html,按下运行高亮显示(下面突出显示的文本)
它也可以突出内联元素的代码,如<code>
,并保持结果内联,就像谷歌的Prettify一样?
没有找到相关结果
已邀请:
8 个回复
磋判粗惊
只需将类
添加到包含代码的标记中,它将突出显示语法。我还通过使用类
添加了对内联代码的支持。 关于jsfiddle的例子
脾萌
粟痢凰副
它循环穿过线条并突出显示它们。
荒劫娇噬
。但是,如果您愿意使用变通方法,那么可以使用(测试过的)。 我在这里使用过jQuery,但它的使用不是必须的,你可以用纯js代码实现相同,虽然它会更长,而不是像jQuery代码那样整洁。 现在,让我们来解决这个问题。 假设你有一个带有代码的
,你想要变成无编辑语法高亮的codemirror容器:
你做的是, 将
改为
, 将codemirror附加到textarea, 隐藏假光标并将其隐藏起来 不要让隐藏的codemirror的textarea抓住焦点(当它发生时抓住它)。 对于最后一次行动,我使用了Travis Webb建议的方法。以下是执行以下四项操作的jQuery代码:
方法二 我们可以删除使编辑器打勾的元素,而不是与光标和所有这些进行摔跤。这是代码:
邵酮
选项:
物崎巩
抬澈帅沮
逝媳蘑贩茄
处理程序的技巧,它们支持禁止用户专注于Codemirror元素,因此不允许编辑。我之前的解释预先假定您已经在这里查看过:http://codemirror.net/manual.html。您可能希望将jQuery用于此技术,但这不是必需的。您正在谈论在
中使用代码,因此我假设您知道如何将Codemirror连接到
元素。 创建一个隐藏的某种
文本字段。你可以使用任何技术“隐藏”你想要的东西,但我可以告诉你,将CSS设置为
是行不通的。
可能会起作用,但最好只将div放在页面某处。 根据上面链接中的Codemirror2文档设置一个
处理程序, 在
事件处理程序中,执行以下操作:
或者没有jQuery:
并立即将焦点重定向到不可见的字段,没有人可以编辑您显示的代码。可能有一些聪明的方法来击败这种方法,但它对99%的情况都有效。这有点棘手,但至少你不必涉及Codemirror的内部。