CodeMirror编辑器文本框Textarea代码高亮插件,CodeMirror的简单实用例子
CodeMirror是一个用于编辑器文本框textarea代码高亮javascript插件,为各种编程语言实现关键字,函数,变量等代码高亮显示,丰富的api和可扩展功能以及多个主题样式,能满足您各种项目的需求。
最近项目中要求把得到的后端json数据如下图展示给客户,还需要可编辑的功能,于是就用到了CodeMirror这款插件,经过初步的探索,发现它主题样式非常靓丽,简单美观,效果图如下:
下面我就一步一步说明我的使用过程。
1.首先需要下载codemirror插件,先创建文件夹,下载插件
npm install codemirror
2.在文件夹中创建一个html文件,引入codemirror中需要的文件
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!--不管你要引入什么主题配色都需要引入的css文件-->
<link rel="stylesheet" href="codemirror.css"> <!--下面的css文件就是不同主题配色的css文件-->
<link rel="stylesheet" href="node_modules/codemirror/theme/monokai.css">
<link rel="stylesheet" href="node_modules/codemirror/theme/3024-day.css">
<link rel="stylesheet" href="node_modules/codemirror/theme/3024-night.css"> <!--不管你需要引入什么样式和主题都是必须引入的-->
<script src="node_modules/codemirror/lib/codemirror.js"></script>
<!--使用的是javascript样式的编辑器-->
<script src="node_modules/codemirror/mode/javascript/javascript.js"></script> </head>
<style type="text/css">
.CodeMirror {border: 1px solid black; font-size:13px;border-radius: 5px}
</style>
<body>
<h2>Theme Demo</h2>
<!--插件起效果的位置,必须是testarea元素-->
<textarea id="code" name="code"> </textarea>
<!--下拉框用来换选主题配色的,当然主题配色非常多,这里只是随便列举几个例子-->
<p>Select a theme: <select onchange="selectTheme()" id=select>
<option selected>default</option>
<option>3024-day</option>
<option>3024-night</option>
</select>
</p>
<script>
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
lineNumbers: true,//是否显示每一行的行数
readOnly:false,//只读
styleActiveLine: true,
matchBrackets: true
});
//这个是假数据,假设是从后台拿到的,需要展示到页面中
var obj ={
"message": "",
"code": 200,
"response": {
"totalCount": 1,
"results": [
{
"status": "deployed",
"login_port": 22,
"role_info": null,
"created": "2017-06-19 09:58:04",
"login_user": "root",
"hostname": "deploy-226",
"login_ip": "172.24.6.226",
"id": "1147edbde1494df696019fdb094be43d"
}
],
"pageSize": 5,
"page": 1
},
"success": true
} setTimeout(function(){//假设两秒后才获取到数据
editor.setValue(JSON.stringify(obj,null,4))//JSON.stringify()方法的第三个参数的目的就是保留格式的,如果没有的话,
},2000) //普通的JSON.stringify(obj)仅仅就是把对象转字符串,并不辉保留空格和换行 //下拉框选择的时候换主题配色
var input = document.getElementById("select");
function selectTheme() {
var theme = input.options[input.selectedIndex].textContent;//获取下拉框的内容
editor.setOption("theme", theme);//把内容设置为主题色,
}
</script>
</body>
</html>
3.介绍简单的api
<1>editor.setValue(string),为codemirror插件赋值,用来显示到页面中
<2>editor.getValue(),当你在页面中编辑的时候,可以用这个方法来获取到你编辑的内容
<3>onChange(instance,changeObj),codeMirror文本被修改后触发
<4>getLine(line):获取指定行的文本内容
<5>ineCount():统计编辑器内容行数
更多的api可以见官网http://codemirror.net/
4.效果如下图:

可以下拉款更换配色主题。
我的实例的github源码在此 https://github.com/jiangzhenfei/CodeMirror,可以克隆到本地,然后npm install下载依赖的包,吧index.html在浏览器打开就可以看到效果。
CodeMirror编辑器文本框Textarea代码高亮插件,CodeMirror的简单实用例子的更多相关文章
- 代码高亮插件Codemirror使用方法及下载
代码高亮插件Codemirror使用方法及下载 - 老男孩的日志 - 网易博客 代码高亮插件Codemirror使用方法及下载 2013-10-31 16:51:29| 分类: 默认分类 | ...
- 7个高性能JavaScript代码高亮插件
本文由码农网 – 小峰原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 对于喜欢写技术博客的同学来说,一定对代码高亮组件非常熟悉.一款优秀的JavaScript代码高亮插件,将会帮助你渲染 ...
- [转]7个高性能JavaScript代码高亮插件
对于喜欢写技术博客的同学来说,一定对代码高亮组件非常熟悉.一款优秀的JavaScript代码高亮插件,将会帮助你渲染任何一种编程语言,包括一些关键字的着色,以及每行代码的缩进等.今天我们要来分享一些高 ...
- WordPress代码高亮插件SyntaxHighlighter终极使用详解
子曰: 工欲善其事,必先利其器.作为码农一枚,再加上站长这个已经不再光鲜的称呼,岂能没有一款经济实用.操作简单.而且功能必须强大.样式也必须好看的Wordpress代码高亮插件?!作为一个视代码如生命 ...
- 代码高亮插件推荐——SyntaxHighlighter++
SyntaxHighlighter++这个插件的最大的优点就是可以在编辑器的下方有一个输入框,里面可以输入代码,然后插入到文章中.就不用编辑文章的时候,在可视化和文本之间来回切换了.非常适合不熟悉ht ...
- google code-prettify 代码高亮插件使用方法
找代码高亮插件选了好久,还是这个使用起来比较方便. 先上链接:插件下载地址 官方使用方法地址 建议看官方的资料,我这里仅仅简要描述一下使用方法: 引入方法: 测试引入是否成功:herf 换成 自己放置 ...
- 轻量级jQuery语法高亮代码高亮插件jQuery Litelighter。
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>jQ ...
- 禁止多行文本框textarea拖拽
禁止多行文本框textarea拖拽: textarea { resize: none; } resize这个是用于元素缩放,它可以取以下几个值: none 默认值 both 允许水平方向及垂直方向缩放 ...
- Word中使用代码高亮插件
Word中使用代码高亮插件 1.下载并安装:SyntaxHighlighter4Word.zip 解压,然后双击bin\word2010\Kong.SyntaxHighlighter.Word2010 ...
随机推荐
- 使用polarssl进行RSA加密解密
RSA算法的原理就不提了,网上有很多介绍的文章,因为项目中使用RSA加密,所以需要找一个RSA加密的算法,之前尝试过使用Crypto++库,无奈Crypto++其中使用了大量的模版,各种继承,看着头大 ...
- LLLYYY的数字思维(模拟题)
链接:https://ac.nowcoder.com/acm/contest/318/G LLLYYY很喜欢写暴力模拟贪心思维.某一天在机房,他突然抛给了队友ppq一 个问题.问题如下: 有一个函数f ...
- FetchType.LAZY 时属性加上@JsonIgnore,避免返回时报错:Could not write JSON: failed to lazily initialize a collection of role
[示例] @OneToMany(fetch=FetchType.LAZY) @JsonIgnore @Fetch(FetchMode.SELECT) @Cascade(value={CascadeTy ...
- NO8——排序
//sort #include<algorithm> bool cmp(const int a,const int b) { return a>b;//降序排列 } //qsort ...
- Bitcoin-NG
Bitcoin-NG,一个新的可扩展的区块链协议 Bitcoin-NG仅受限于网络的传输延时,它的带宽仅受限于个人节点的处理能力.通过将比特币的区块链操作分解为两部分来实现这个性能改善:首领选择(le ...
- ExtJS6.0扩展日期选择控件为也可以选择时间
PS:ExtJS自带的日期选择控件只能够选择日期,但是现在的需求需要精确到秒,所以在网上搜索了一些例子(大部分是4.0的)作为参考,然后改出了6.0可用的一个日期时间选择控件. 1.找到extjs6. ...
- 正则awk和查看文件行数
[root@WebServer aa]# cat oldboy.txt I am oldboy myqq is 49000448[root@WebServer aa]# cat oldboy.txt ...
- [剑指Offer] 23.二叉搜索树的后序遍历
[思路]BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两 ...
- input只改变光标的颜色 不改变字的颜色
color: red; text-shadow: 0px 0px 0px #000; -webkit-text-fill-color: transparent;把这些放到input里文字通过阴影实现 ...
- 【bzoj2661】[BeiJing wc2012]连连看 最大费用最大流
题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...