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 相关文章推荐
Extjs学习笔记之四 工具栏和菜单
Jan 07 Javascript
jquery操作select大全
Apr 25 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 Javascript
Javascript中replace()小结
Sep 30 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
ES6入门教程之Class和Module详解
May 17 Javascript
angularjs中ng-bind-html的用法总结
May 23 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 Javascript
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
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 substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
JS实现的省份级联实例代码
2013/06/24 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python Queue模块详解
2014/11/30 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
pandas 空数据处理方法详解
2019/11/02 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python plotly画柱状图代码实例
2019/12/13 Python
群众路线批评与自我批评
2014/02/06 职场文书
个人租房协议书
2014/04/09 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
青安岗事迹材料
2014/05/14 职场文书
爱的承诺书
2015/01/20 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript