JavaScript建立一个语法高亮输入框实现思路

 更新时间:2013年02月26日 09:55:53   作者:  
通常网站自带的textarea编辑器不能满足我们的需求比如高亮显示代码等,在这篇文章中,我将使用JavaScript库ACE来创建一个输入框效果,该脚本允许开发人员创建支持语法高亮的输入框,感兴趣的你可不要错过了哈
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中this关键字的一些小知识

    Javascript中this关键字的一些小知识

    这篇文章主要介绍了Javascript中this关键字的一些小知识,本文讲解了this的隐性绑定、var that = this两部份内容,需要的朋友可以参考下
    2015-03-03
  • 微信小程序开发之大转盘 仿天猫超市抽奖实例

    微信小程序开发之大转盘 仿天猫超市抽奖实例

    本篇文章主要介绍了微信小程序开发之大转盘 仿天猫超市抽奖实例,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • echarts饼图自定义设置颜色的3种实现方式

    echarts饼图自定义设置颜色的3种实现方式

    ECharts饼图的颜色可以通过多种方式进行设置,下面这篇文章主要给大家介绍了关于echarts饼图自定义设置颜色的3种实现方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • javascript中的异步调用机制

    javascript中的异步调用机制

    这篇文章主要介绍了javascript中的异步调用机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Javascript实现DIV滚动自动滚动到底部的代码

    Javascript实现DIV滚动自动滚动到底部的代码

    一个比较特殊的客户要求,在一个页面用表格显示数据,数据量不是很多,不希望使用浏览器的滚动条,只能在Div中滚动table中的数据,但是有个特殊的要求,就是必须将滚动条自动滚动到底部
    2012-03-03
  • JavaScript 阻止超链接跳转的操作方法(多种写法)

    JavaScript 阻止超链接跳转的操作方法(多种写法)

    很多朋友问小编能否通过JavaScript来阻止超链接的跳转呢,今天给大家通过多种写法来实现这一功能,具体实例代码跟随小编一起看看吧
    2021-06-06
  • 通过JavaScript实现扑克牌游戏的示例代码

    通过JavaScript实现扑克牌游戏的示例代码

    这篇文章主要为大家详细介绍了JavaScript如何通过面向对象实现一个简单的扑克牌游戏,文中的示例代码代码讲解详细,感兴趣的可以学习一下
    2022-07-07
  • uniapp使用uni.chooseLocation()打开地图选择位置详解

    uniapp使用uni.chooseLocation()打开地图选择位置详解

    这篇文章主要给大家介绍了关于uniapp使用uni.chooseLocation()打开地图选择位置的相关资料,因为最近在项目中遇到一个要用户授权位置且可以用户自己选择位置的功能,需要的朋友可以参考下
    2023-06-06
  • 动态的9*9乘法表效果的实现代码

    动态的9*9乘法表效果的实现代码

    下面小编就为大家带来一篇动态的9*9乘法表效果的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • uniapp uni-swipe-action 滑动操作状态恢复功能实现

    uniapp uni-swipe-action 滑动操作状态恢复功能实现

    按照uni-app官方文档的写法,当前一条滑动确认之后页面列表刷新但是滑动的状态还在,我们需要在滑动确认之后 页面刷新 滑动状态恢复,下面小编给大家分享uniapp uni-swipe-action 滑动操作状态恢复功能实现,感兴趣的朋友跟随小编一起看看吧
    2024-06-06

最新评论