codeMirror插件使用讲解


Posted in Javascript onJanuary 16, 2017

codeMirror是一款十分强大的代码编辑插件,提供了十分丰富的API,最近在项目中用到了这款插件,于是在这里给大家分享下使用方法和心得:

codeMirror调用非常方便

首先在页面中载入插件CSS及JS文件

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

同时加载你所需要使用的脚本JS及风格样式CSS文件,如下举例:

<link href="/static/codemirror/theme/3024-night.css" rel="stylesheet">
 <link href="/static/codemirror/theme/erlang-dark.css" rel="stylesheet">
 <script src="/static/codemirror/mode/shell/shell.js"></script>
 <script src="/static/codemirror/mode/perl/perl.js"></script>
 <script src="/static/codemirror/mode/python/python.js"></script>

注意文件的放置位置

下一步在html页面中编写好代码:

<!--选择脚本编码代码-->
<div class="controls">
  <input class="ck-code" type="radio" name="script_once_type" id="script_once_type1" checked> shell
   <input class="ck-code" type="radio" name="script_once_type" id="script_once_type2"> bat
   <input class="ck-code" type="radio" name="script_once_type" id="script_once_type3"> python
</div>
<!--选择脚本风格代码-->
<div class="controls">
  <select id='select'>
     <option>default</option>
     <option>3024-night</option>
     <option selected>erlang-dark</option>
  </select>
</div>
<!--textarea-->
<textarea id="script_once_code">
  #!/bin/sh
</textarea>
<textarea id="code2" class="hide">
  #!/usr/bin/env python
  # -*- coding: utf8 -*-
</textarea>

调用关键代码如下:

var editor = CodeMirror.fromTextArea($("#script_once_code")[0], { //script_once_code为你的textarea的ID号
     lineNumbers: true,//是否显示行号
     mode:"shell", //默认脚本编码
     lineWrapping:true, //是否强制换行
 });

JS配置代码如下:

//选择界面风格JS
$('#select').change(function(){
   var theme = $('#select').val();
     editor.setOption("theme", theme); //editor.setOption()为codeMirror提供的设置风格的方法
 });
//选择脚本类型JS
var txt1=$("#script_once_code").val();
var txt2='';
var txt3=$("#code2").val();
$(".ck-code").click(function(){
    var txt=editor.getValue(); //editor.getValue()获取textarea中的值
    var lang=$(this).prop("id");
    if(lang=="script_once_type1") {
        editor.setOption("mode","shell");//editor.setOption()设置脚本类型
          editor.setValue(txt1);// editor.setValue()设置textarea中的值
    }
    else if(lang=="script_once_type2") {
        editor.setOption("mode","perl");
        editor.setValue(txt2);
    }
    else {
        editor.setOption("mode","python");
        editor.setValue(txt3);
    }
});

最终界面如下:

codeMirror插件使用讲解

如需配置更多参数,可以访问codeMirror插件官网:http://codemirror.net/ 查看其配置文档。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery tab插件精简版分享
Sep 10 Javascript
Jquery实现自定义窗口随意的拖拽
Mar 12 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
7个有用的jQuery代码片段分享
May 19 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
Aug 24 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
详解vue axios二次封装
Jul 22 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
小程序异步问题之多个网络请求依次执行并依次收集请求结果
May 05 Javascript
js实现微信聊天界面
Aug 09 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 Javascript
微信小程序 图片边框解决方法
Jan 16 #Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 #Javascript
微信小程序 video详解及简单实例
Jan 16 #Javascript
Vue系列:通过vue-router如何传递参数示例
Jan 16 #Javascript
微信小程序 登录实例详解
Jan 16 #Javascript
微信小程序 传值取值的几种方法总结
Jan 16 #Javascript
详解vue-Resource(与后端数据交互)
Jan 16 #Javascript
You might like
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
用 JSON 处理缓存
2007/04/27 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
import的本质解析
2017/10/30 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
python 自定义对象的打印方法
2019/01/12 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
智乐游戏测试笔试题
2014/05/21 面试题
出纳岗位职责模板
2013/11/27 职场文书
个人党性剖析材料
2014/02/03 职场文书
竞选部长演讲稿
2014/04/26 职场文书
三八活动策划方案
2014/08/17 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
关于python中模块和重载的问题
2021/11/02 Python