效果图


先引入jQuery、echarts和ace.js

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts@5.2.1/dist/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/ace/test/ace.js"></script>

在页面中放入ace代码编辑器

<div class="left-part"><div class="btn-wrap"><button id="submit">运行</button></div>// 代码编辑器<pre id="editor"></pre>
</div>
<div class="right-part"><div id="main" style="width:100%;height:400px;"></div>
</div>

获取编辑器

var editor = ace.edit("editor");

更改语言模式

editor.session.setMode("ace/mode/javascript");

使用setOptions方法一次性设置多个选项

editor.setOptions({enableBasicAutocompletion: true, //启用基本自动完成enableSnippets: true, //启用代码段enableLiveAutocompletion: true, // 启用实时自动完成wrap: true, //开启换行});

设置默认显示的图表

与echart官网示例一样(略)

获取到图表配置信息的options字符串

function getChartOptionsStr(el,option){let str// 将传入的option对象转为字符串,第三个参数2表示字符串缩进2个空格option = JSON.stringify(option,null,2)str = `option = ${option};`return str
}

与echart官网图表在线配置编辑器一样,编辑器内容显示当前图表的配置信息,这时候就要为ace’编辑器设置内容

// editor.setValue()第一个参数为内容,第二个参数控制光标位置 1为末尾,-1为首行,不设置的话则为全选
editor.setValue(getChartOptionsStr('main',option),1)

在编辑器中修改完代码后点击运行按钮后重新渲染图表

var submit = document.querySelector('#submit');
submit.addEventListener('click', function () {// 获取编辑器里的配置代码var script = editor.getValue()var myChart = echarts.init(document.getElementById('main'));// 更改图表前先清空当前图表myChart.clear()// 更新图表changeChart(script)
})

更新图表方法

// 更改图表
function changeChart(script) {try {let func = new Function(`var ROOT_PATH = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples';var option;var myChart = echarts.init(document.getElementById('main'));` + script + `myChart.setOption(option);`)func()} catch (e) {console.log('编辑有误')}}

用aceEditor和new Function制作简单的echarts编辑器相关推荐

  1. python制作图片编辑器_Tkinter制作简单的python编辑器

    想要制作简单的python脚本编辑器,其中文字输入代码部分使用Tkinter中的Text控件即可实现. 但是问题是,如何实现高亮呢?参考python自带的编辑器:python27/vidle文件夹中的 ...

  2. 用Vue实现简单的echarts在线编辑器

    用Vue实现简单的echarts在线编辑器 简述 思路 效果图 页面分布 main.js的配置 其中ace编辑器的配置 按钮功能 实现思路 具体实现 图表初始化 图表组件传给父组件option配置对象 ...

  3. 使用matlab建立个人简历,HTML 使用表格制作简单的个人简历

    复习一下HTML,用表格做一个简单的个人简历 .btbg{ text-align:center; } 个人简历 姓名 性别 出生日期 照片 民族 政治面貌 婚姻状况 现所在地 籍贯 学历 毕业学校 专 ...

  4. html根据字段制作曲线图,canvas制作简单的HTML图表,折线或者矩形统计(原创)

    插件描述:canvas制作简单的HTML图表,折线或者矩形统计 使用canvas制作简单的HTML图表,折线或者矩形统计. 使用canvas制作简单的HTML图表,折线或者矩形统计,简单而实用.图形由 ...

  5. phalcon: eventManager事件管理(结合dispatcher调度控制器)制作简单的acl

    制作简单的acl, dispatcher(专门用来加载或调度或跳转到相应的url地址即XXXcontroller的调度器或控制器,能够在controller执行前对controller进行停止跳转等) ...

  6. php简单网页制作代码,用HTML和CSS以及JS制作简单的网页菜单界面的代码

    这篇文章主要介绍了使用HTML+CSS+JS制作简单的网页菜单界面,这个ABROAD项目所使用的JavaScript部分代码非常简单,需要的朋友可以参考下 写ABROAD项目用到了标签这个东东,其实标 ...

  7. d3.js-V3制作简单的飞线图

    d3.js制作简单的飞线图 简介 期末的一个小作业,放上来分享一下.若有不懂的地方欢迎在评论区提问~ 最终效果图: 使用工具 d3.js (V3版本) 步骤简介 准备好数据. 绘制一个中国地图. 绘制 ...

  8. 电脑PHP动画制作画板,html5教程制作简单画板代码分享

    HTML5制作简单画板 复制代码代码如下: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">> ...

  9. 电脑PHP动画制作画板,HTML_html5教程制作简单画板代码分享,HTML5制作简单画板 复制代码代 - phpStudy...

    html5教程制作简单画板代码分享 HTML5制作简单画板 复制代码代码如下: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min ...

最新文章

  1. 终于!这个强大的「开源图像识别系统」上线了!
  2. HOG特征向量的代码 源代码改
  3. C++类class和结构体struct区别
  4. 谈谈设计模式的几个原则
  5. 关于错误Resource interpreted as Script but transferred with MIME type text_html
  6. 7-2 旅行售货员 (10 分)(TSP问题思路加详解)
  7. c语言位运算+乘法,关于c语言中的位运算。。。
  8. 正式开始liunx学习之旅
  9. 三星 SGH-G810 多普达 P800 多普达 Touch Diamond(S900) 多普达 P860 多普达 Touch(T3238) 对比...
  10. Pytorch:RuntimeError: DataLoader worker (pid 27) is killed by signal: Killed. Details are lost due
  11. [转载] python hex转字符串_Python hexstring-list-str之间的转换方法
  12. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  13. 城市大脑已经几岁?城市大脑发展成熟度的年龄评估模型
  14. 微信小程序 - 获取当前日期时间(函数封装)
  15. 解决VS2010使用mscomm控件无法接收数据的问题
  16. 戴尔R720系列服务器CPU升级,Dell 服务器R720的CPU列表
  17. c/c++ 程序CRASH的几种情况
  18. linux命名信号量,在进程之间使用POSIX信号量(命名信号量,Linux,C)
  19. w10服务器共享文件设置,w10怎么设置共享文件 w10设置共享文件的具体步骤[多图]...
  20. Emacs常用命令快速参考

热门文章

  1. 说说Mochiweb
  2. React中微信H5支付实现代码
  3. 戴哪种耳机不伤耳朵?不入耳佩戴的骨传导耳机
  4. uniapp非h5应用的支付宝支付,微信支付
  5. petalinux vdma 学习笔记
  6. 模糊聚类FCM算法和基于GA遗传优化的FCM聚类算法matlab仿真
  7. 常用互联网协议之osi七层模型
  8. 学了一年的Android,还不会调试?你白学了!
  9. GDOI2019 游记
  10. centos7安装数据库MariaDB