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 DOM编程实例(智播客学习)
Nov 23 Javascript
JS判断数组中是否有重复值得三种实用方法
Aug 16 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
javascript使用location.search的示例
Nov 05 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
Backbone View 之间通信的三种方式
Aug 09 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
Jul 18 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
使用flow来规范javascript的变量类型
Sep 12 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 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网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
javascript基础知识讲解
2017/01/11 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
不要用强制方法杀掉python线程
2017/02/26 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python List cmp()知识点总结
2019/02/18 Python
详解django2中关于时间处理策略
2019/03/06 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
毕业生自荐信
2013/12/14 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
课外访万家心得体会
2014/09/03 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android