王牌编辑器“定义未定义”
Ace editor "define is not defined"
我正在尝试将 ace 编辑器添加到我的应用程序中。我从github下载了它,将"ace/lib/ace"目录放入我的应用程序目录中,包括:
<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>"
在我的身体标签中,并且:
editor = ace.edit "editor"
在我的脚本标签中。我尝试在Chrome和Firefox中加载页面,并在ace.js:46中得到"定义未定义"。ace.js中的行是:
define(function(require, exports, module) {
有谁知道为什么 ace 期望 define() 函数存在以及为什么它找不到它?这是我的来源:
<html>
<body>
<div id="editor">some text</div>
<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit("editor");
</script>
</body>
</html>
我通过将window.define = ace.define;
放入我的DOMload处理程序中来破解它。
如果您已经有了源代码,那么仍然很容易做到。只需进入您复制所有 ace 源的目录即可。
然后,执行:
npm install
node Makefile.dryice.js
有关更多详细信息,请参阅维基https://github.com/ajaxorg/ace/wiki/Building-ace
您收到此错误是因为 RequireJS JavaScript 库尚未包含在您的页面中。
要解决此问题,请使用 ace 构建或在页面中包含 RequireJS。
如果您选择包含 RequireJS,您的 html 片段将如下所示:
<!-- Editor will go here -->
<div id="editor"></div>
<!-- Load RequireJS -->
<script src="lib/requirejs/require.js"></script>
<!-- Initialize ace -->
<script>
// Tell RequireJS where ace is located
require.config({
paths: {
'ace': 'lib/ace'
}
});
// Load the ace module
require(['ace/ace'], function(ace) {
// Set up the editor
var editor = ace.edit('editor');
editor.setTheme('ace/theme/monokai');
editor.getSession().setMode('ace/mode/javascript');
// etc...
});
</script>
在 React 中,如果您要从 ace-build 导入任何内容,那么您的导入顺序很重要。
应该是这样的
import AceEditor from 'react-ace';
import 'ace-builds/src-noconflict/mode-json';
不是这样的
import 'ace-builds/src-noconflict/mode-json';
import AceEditor from 'react-ace';
或者,您可以使用 CDN
- http://cdnjs.com/libraries/ace/
- http://www.jsdelivr.com/#!ace
并替换
<script src="/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
用类似的东西
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js" type="text/javascript" charset="utf-8"></script>
相关文章:
- 已定义变量出现未定义错误
- LinkedIn共享链接图片未使用自定义url更新
- 使用eval()定义变量显示未定义的错误
- 得到"全局未定义“;全局变量定义清楚时出错
- 定义的变量未定义
- 续集返回未定义的模型自定义方法
- 来自函数的返回对象在 jQuery 中未从 $.post 定义
- JavaScript 2d 数组导致“无法读取未定义的属性'未定义'”
- 未捕获的引用错误:函数未使用 onchange 定义
- 自定义验证器未启动
- 自定义社交共享未在窗口中打开
- 定义返回'未定义'
- 创建自定义指令时未加载templateUrl
- JS:未定义值和未定义类型,以及null值和null类型之间的区别
- 未为HttpServlet定义getPart(String)
- 无法调用方法'发送'express js中未定义的(响应未定义)
- Angularjs自定义服务变量未被$http成功定义
- 引用错误:$ 未为 $.get 定义
- HTML “标题”属性显示单词“未定义” - 例如.“主页未定义”
- 为什么以下 forEach 数组循环未返回未定义