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 相关文章推荐
Jquery带搜索框的下拉菜单
May 06 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
JS XMLHttpRequest原理与使用方法深入详解
Apr 30 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
vue组件添加事件@click.native操作
Oct 30 Javascript
详解Vue项目的打包方式(生成dist文件)
Jan 18 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
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
Python实现简易端口扫描器代码实例
2017/03/15 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python数值基础知识浅析
2019/11/19 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
python调用百度API实现人脸识别
2020/11/17 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
银行实习鉴定
2013/12/13 职场文书
店长职务说明书
2014/02/04 职场文书
公司户外活动总结
2014/07/04 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
导游词开场白
2015/01/31 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
未婚证明格式
2015/06/15 职场文书