JavaScript建立一个语法高亮输入框实现思路


Posted in Javascript onFebruary 26, 2013

textarea元素已被广泛用于网页Web的IDE。通常网站自带的textarea编辑器不能满足我们的需求,作为一名开发者我们经常需要进行代码的在线编辑,高亮显示代码等,因此,通过其他的开源项目,我们可以添加一些实用的功能, 在这篇文章中,我将使用JavaScript库ACE来创建一个输入框效果。这是一个完全开源的脚本。该脚本允许开发人员创建支持语法高亮的输入框。然后你可以代码嵌入到网站中的任何地方
下载库 首先我们需要Github上下载ACE代码。 下载完成后解压缩,在你的header部分引入js文件

<script src="src-min/ace.js" type="text/javascript" charset="utf-8"></script>

添加代码到编辑器
首先设置一个id为editor的div 然后在script里面调用ace.edit()方法,代码如下
var editor = ace.edit("editor"); 
editor.getSession().setMode("ace/mode/javascript");您可以重命名变量,为了方便起见,我定义了var editor作为变量,你也可以定义var demoeditor作为变量。第二行声明使用哪种类型的语言高亮显示。您可以从 src 目录选择其他语言集合。这里是一些支持支持的语言集合:

SQL
Ruby
SASS
PHP
Objectivec
Csharp
Java
JSON
使用额外的参数
editor.setTheme("ace/theme/dawn"); 
editor.getSession().setTabSize(2); 
editor.getSession().setUseWrapMode(true);

这3行代码是关于文本输入效果的,第一行改变代码默认的语法颜色和主题,在src目录下个有几十个新的主题,你可以从中任意选择
另外两个选项是关于用户体验。通常情况下,按一个键盘上的Tab键将输入4个空格,这里我设置成2个空格,此外,该文本在默认情况下将不会自动换行,超了会追加一个水平滚动条向外延伸。但使用这种方法setUseWrapMode(true),我们可以修复自动换行的问题。
还有一些其他的命令,你可以参考ACE向导。这里面包含了改变光标的位置,动态添加新内容,或复制的文本的全部内容。
CSS代码
#editor { 
margin-left: 15px; 
margin-top: 15px; 
width: 1000px; 
height: 400px; 
}

JavaScript建立一个语法高亮输入框实现思路
Javascript 相关文章推荐
解密效果
Jun 23 Javascript
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
jquery+json实现动态商品内容展示的方法
Jan 14 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
JavaScript手风琴页面制作
May 17 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
react路由配置方式详解
Aug 07 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
Jul 15 Javascript
对angular 监控数据模型变化的事件方法$watch详解
Oct 09 Javascript
js图片无缝滚动插件使用详解
May 26 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 #Javascript
js 获取计算后的样式写法及注意事项
Feb 25 #Javascript
js调用webservice中的方法实现思路及代码
Feb 25 #Javascript
JS获取页面input控件中所有text控件并追加样式属性
Feb 25 #Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 #Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
Feb 25 #Javascript
30分钟就入门的正则表达式基础教程
Feb 25 #Javascript
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
php技巧小结【推荐】
2017/01/19 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
教育实习生的自我评价分享
2013/11/21 职场文书
创先争优制度
2014/01/21 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript