前端页面添加代码编辑区域(css和sql高亮)
初级菜鸟,工作遇到了前端页面需要放一块可编辑代码的区域,只需要高亮css和sql语句,就去各种百度,最后使用了codemirror,下面为记录步骤。
1.下载codemirror
官网直接下载,点击DOWNLOAD
2.下载完查看需要用到的css和js
lib目录下的css和js必须导入,然后就在mode里面找到需要的css和sql的js
3.运用到页面中
拿到的1个css和3个js文件引入到项目中
<link rel="stylesheet" type="text/css" href="lib/codemirror.css"/>
<script type="text/javascript" src="lib/codemirror.js"></script>
<script type="text/javascript" src="js/css.js"></script>
<script type="text/javascript" src="js/sql.js"></script>
html中代码
<body>
<textarea name="editor" id="editor"></textarea>
</body>
自己本地的js文件中加入代码,这段代码参考codemirror的demo目录下的changemode.html文件
<script type="text/javascript">
myTextarea = document.getElementById("editor");
var editor = CodeMirror.fromTextArea(myTextarea, {
// mode: "text/x-mysql",
lineNumbers: true,//显示行数
matchBrackets: true, // 括号匹配(这个需要导入codemirror的matchbrackets.js文件)
});
var pending;
editor.on("change", function() {
clearTimeout(pending);
pending = setTimeout(update,200);
});
function looksLikeScheme(code) {
//正则表达式,判断textarea中输入的是否是sql语句
return /^select[\s\S]*/.test(code) || /^insert.*$/.test(code) || /^delete.*$/.test(code) || /^update.*$/.test(code);
}
function update() {
//如果输入是sql语句,则给editor设置mode属性为mysql,否则为css
editor.setOption("mode", looksLikeScheme(editor.getValue()) ? "text/x-mysql" : "text/css");
}
</script>
4.测试
我要的高亮css和sql可以实现了。