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 相关文章推荐
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 Javascript
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
新手学习前端之js模仿淘宝主页网站
Oct 31 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 Javascript
JavaScript如何判断对象有某属性
Jul 03 Javascript
Openlayers实现距离面积测量
Sep 28 Javascript
Javascript数组及类数组相关原理详解
Oct 29 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完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php车辆违章查询数据示例
2016/10/14 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
处理Python中的URLError异常的方法
2015/04/30 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Python Flask框架扩展操作示例
2019/05/03 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
浅析matlab中imadjust函数
2020/02/27 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
办理护照工作证明
2014/10/10 职场文书
社区好人好事材料
2014/12/26 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android