用 codemirror 的时候如何动态加载某个语言的.js 文件?

2019-07-12 16:14:25 +08:00
 clino
我主要是后端开发人员,现在想用 vue-codemirror ( https://github.com/surmon-china/vue-codemirror ) 来在线展示代码
//用的是传统的方式开发木有用 nodejs/webpack/import 这类的

因为 codemirror 里支持的语言很多,如果我不想预先加载某个语言的 js,如
<script type="text/javascript" src="/static/modules/codemirror/5.48.0/mode/javascript/javascript.js?ver=3"></script>
而想在 javascript 里通过获取到的语言动态地加载相关的 js 文件进来,要用什么方法呢?

搜了一下动态加载 js 可以用 jQuery.getScript() ,不过不确定是不是比较好的姿势,所以还是来问问看.
4122 次点击
所在节点    JavaScript
4 条回复
arrow8899
2019-07-12 20:47:29 +08:00
require.js
GTim
2019-07-12 23:10:26 +08:00
详细点的呢看这个网页的源代码 [https://www.twle.cn/t/yufei/c/helloworld]( https://www.twle.cn/t/yufei/c/helloworld)

不那么详细的呢就是添加下面的设置即可,比如 C 语言

var var editor = CodeMirror.fromTextArea('xx');
var ext = "c";
var info = CodeMirror.findModeByExtension(ext);
var mode = "";
var spec = "";
if (info) {
mode = info.mode;
spec = info.mime;
}
if (mode) {
editor.setOption("mode", spec);
CodeMirror.autoLoadMode(editor, mode);
}
clino
2019-07-13 08:31:52 +08:00
@GTim 感谢例子!之后试试
clino
2019-07-18 08:12:32 +08:00
@GTim 我之前用 vue 结合处理怎么也有问题,用了 vue-codemirror 也各种问题
刚试了 ace,结果一下就正常显示了,所以准备不用 codemirror 用 ace 了,feature 级别看起来也差不多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582416

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX