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 相关文章推荐
JS中==与===操作符的比较
Mar 21 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
js子页面获取父页面数据示例
May 15 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
使用RequireJS优化JavaScript引用代码的方法
Jul 01 Javascript
百度地图API之本地搜索与范围搜索
Jul 30 Javascript
基于javascript实现简单计算器功能
Jan 03 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
Postman模拟发送带token的请求方法
Mar 31 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
javascript实现日期按月份加减
2015/05/15 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
浅谈vue父子组件怎么传值
2018/07/21 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
python 绘制场景热力图的示例
2020/09/23 Python
教师绩效工资方案
2014/02/01 职场文书
国培计划培训感言
2014/03/11 职场文书
商业街策划方案
2014/05/31 职场文书
聘任合同书
2015/09/21 职场文书