CodeMirror 编辑器文本框 TextArea 代码高亮插件

发布于 2018-09-10 字数2840 浏览 919 评论 0

CodeMirror 是一个用于编辑器文本框 TextArea 代码高亮 JavaScript 插件,为各种编程语言实现关键字、函数、变量等代码高亮显示,丰富的 API 和可扩展功能以及多个主题样式,能满足您各种项目的需求。

CodeMirror 支持大量语言的语法高亮,包括 C、C++、C#、Java、Perl、PHP、JavaScript、Python、Lua、Go、Groovy、Ruby 等,以及 diff、LaTeX、SQL、wiki、Markdown 等文件格式。此外,CodeMirror 还支持代码自动完成、搜索/替换、HTML预览、行号、选择/搜索结果高亮、可视化 Tab、Emacs/VIM 键绑定、代码自动格式等。

CodeMirror 采用 MIT 开源许可协议,目前已经被集成到各种应用程序中,如 Adobe Brackets、CoDev、Light Table 等开发环境,还被作为各种 SQL、Haxe、JavaScript 在线编辑器的基础库来使用。

CodeMirror 开发者近日发布了 3.0 版本。该版本进行了一些改进,如果你使用之前的版本,则需要注意,3.0 中的 API 与 2.0 存在一些不兼容的问题,详细信息见 升级向导。此外重要的是,3.0 放弃了对 IE7 的支持。

使用方法

本文将做简单的介绍,如何使用 CodeMirror 插件和提交表单。

引入核心文件

<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"></script>

codemirror.css 和 codemirror.js 文件是 CodeMirror 插件的核心文件,无论你要高亮的代码是何种语言,都要引入这两个文件。

引入代码高亮js

接下来要引入的文件可以根据您的项目需求引入,不必要引入所有文件,比如您要显示 HTML 代码,则引入:

<script src="xml.js"></script>

代码调用

<script>
  myTextarea = document.getElementById("code");
  var editor = CodeMirror.fromTextArea(myTextarea, {
    mode: "text/html"
  });
</script>

myTextarea 为您的编辑器 Dom 元素 ID,一般使用 document.getElementById(“code”) 方法获取文本框,如果您使用的 jQuery,那么需要在代码后面加入 [0],比如 $(‘#code’)[0];

获取 Codemirror 的值

//该方法得到的结果是经过转义的数据
editor.getValue();
//该方法得到的结果是未经过转义的数据
editor.toTextArea();
editor.getTextArea().value;

如果是通过 JS 进行表单提交,可以在提交的 JS 代码中这样使用:

//将 Codemirror 的内容赋值给 Textarea
$("#content").text(editor.getValue());

 

如果你对这篇文章有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助。

扫码二维码加入Web技术交流群

您暂时不能评论!

管理员开启了需要登录才能够评论,你可以免费注册一个本站的账号。

还没有评论!

目前还没有任何评论,快来抢沙发吧!