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 相关文章推荐
javascript的事件描述
Sep 08 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
Mar 24 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
Apr 06 Javascript
如何动态加载外部Javascript文件
Dec 02 Javascript
JavaScript html5 canvas绘制时钟效果(二)
Mar 27 Javascript
Google 地图事件实例讲解
Aug 06 Javascript
vue2.0实现导航菜单切换效果
May 08 Javascript
vue component组件使用方法详解
Jul 14 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
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
我的论坛源代码(七)
2006/10/09 PHP
php下批量挂马和批量清马代码
2011/02/27 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
微信支付开发发货通知实例
2016/07/12 PHP
js的with语句使用方法
2007/09/21 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python小白学习包管理器pip安装
2020/06/09 Python
Python读写压缩文件的方法
2020/07/30 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
《风娃娃》教学反思
2014/04/19 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
五好关工委申报材料
2014/05/31 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
2014年妇联工作总结
2014/11/21 职场文书
如何写辞职信
2015/05/13 职场文书
消防宣传标语大全
2015/08/03 职场文书
大学生十八大感想
2015/08/11 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
排查MySQL生产环境索引没有效果
2022/04/11 MySQL