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 相关文章推荐
chrome原生方法之数组
Nov 30 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
jQuery、zepto、js常用小技巧
Feb 12 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
深入分析jQuery.one() 函数
Jun 03 jQuery
微信小程序调用后台service教程详解
Nov 06 Javascript
Js利用正则表达式去除字符串的中括号
Nov 23 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
js选择器全面解析
2016/06/27 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
大型车展策划方案
2014/02/01 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书