Javascript 如何加载ace编辑器
我正在尝试使用Ace代码编辑器库(),但遇到了问题。根据嵌入指南,这应该从Amazons CDN加载所需的js文件Javascript 如何加载ace编辑器,javascript,html,cdn,code-editor,Javascript,Html,Cdn,Code Editor,我正在尝试使用Ace代码编辑器库(),但遇到了问题。根据嵌入指南,这应该从Amazons CDN加载所需的js文件 <script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script> 我还尝试将ace库src min文件夹放在本地,并用 <script src="/js/ace/ac
<script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
我还尝试将ace库src min文件夹放在本地,并用
<script src="/js/ace/ace.js" type="text/javascript" charset="utf-8"></script>
最后,我尝试加载ace src min文件夹中的所有js资源,但也失败了,出现了错误:S我无法将所有代码粘贴到注释中,因此我将通过更新这个来回答您的问题。这对我来说很好:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>HTML</title>
<style>
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
</head>
<body>
<div id="editor">
function foo(items) {
var x = "All this is syntax highlighted";
return x;
}
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
</script>
</body>
</html>
在那之后,它应该会起作用
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials: "true"
</IfModule>
更新
我没有彻底测试这个部件,但它应该可以工作
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials: "true"
</IfModule>
标题集访问控制允许原点“*”
标题集访问控制允许凭据:“true”
祝你好运 我知道这不能准确回答你的问题,但我写这篇文章是为了那些登上这一页并在哪里遇到同样问题的人
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials: "true"
</IfModule>
不要工作
我在Chrome上也有同样的问题。我在Firefox和Opera中测试了我的站点,结果一切正常。我不断得到uncaughtrangeerror:加载页面时超过了最大调用堆栈大小错误
解决方案是清空Chrome的缓存,然后它又能工作了。即使是控制/命令+shift+r
或控制+F5
也不起作用。我必须进入设置并清空缓存
再次,我知道这只是部分相关,但这是为其他谁在这一页土地 正确答案在第一条评论中:
尝试此编辑器.getSession().setUseWorker(false);看看它是否还在
失败。本地服务器不起作用,因为它依赖于其他在线服务器
相关文件。这就是相对GET失败的原因。我不是
使用第一个联机链接tho获取任何错误。也许是什么
否则会中断您的javascript吗?你能展示一个更完整的版本吗
你的HTML/JS文件
-Allendar,3月24日14:25我在试图完成这项工作时遇到了麻烦。ACE主页中给出的代码对我不起作用。我的所有文件都在本地目录中,但如果您愿意,可以使用CDN
我将ace目录从lib/ace
放入我的static/
目录中。将该部分更改为您自己的位置
我必须使用Require.js api来加载ace。这是对我有用的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<title>ACE in Action</title>
<style type="text/css" media="screen">
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
</head>
<body>
<div id="editor">
function foo(items) {
var x = "All this is syntax highlighted";
return x;
}
</div>
<script type="text/javascript" src="/static/require.js"></script>
<script>
require.config({
baseUrl: window.location.protocol + "//" + window.location.host
+ window.location.pathname.split("/").slice(0, -1).join("/"),
paths: {
ace: "/static/ace"
}
});
require(["ace/ace"], function (ace) {
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
});
</script>
</body>
</html>
王牌
#编辑{
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
}
功能foo(项目){
var x=“所有这些都是语法突出显示的”;
返回x;
}
require.config({
baseUrl:window.location.protocol+“/”+window.location.host
+window.location.pathname.split(“/”).slice(0,-1.join(“/”),
路径:{
ace:“/static/ace”
}
});
要求([“ace/ace”],功能(ace){
变量编辑器=ace.edit(“编辑器”);
编辑:setTheme(“ace/theme/monokai”);
editor.getSession().setMode(“ace/mode/javascript”);
});
资料来源:
如果出现一些疯狂的错误,请签出此页面:尝试此editor.getSession().setUseWorker(false)代码>并查看它是否仍然失败。本地文件不起作用,因为它依赖于其他联机相对文件。这就是相对GET失败的原因。我使用第一个在线链接tho没有收到任何错误。可能是其他什么东西干扰了你的javascript?你能展示你的HTML/JS文件的更完整版本吗?真奇怪,firefox中也出现了错误,在我添加了你给我的行之后,它工作了,然后我删除了链接,它也工作了:S:S:S你是说你删除了在线链接?把放在“严格使用”上在您的第一个JavaScript顶部的code>中,如果您看到Firebug错误地删除了一个不存在的对象,请检入Firebug。除非你检查它,否则它可能不会显式地显示错误。啊,好吧,忘了我上次说的话。事实证明,为了查看代码编辑器,我需要从演示中添加css。这就是为什么我认为它不起作用,但是我仍然看到错误无法加载worker ace.js:1,但是编辑器工作正常。对于像我这样的人来说,找到这篇文章是因为ace不再从上面的cloudfront url工作,你现在应该使用例如,而不是Woome work,谢谢!!,我将试一试,看看它是否有效,谢谢你的帮助很高兴我能帮忙:)。请回到这个答案,如果它仍然给你带来问题,我会尝试研究它。似乎修复错误信息比解决它更好。工人是一种优化技术,应该包括在内,而不是避免。
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials: "true"
</IfModule>
editor.getSession().setUseWorker(false);
<!DOCTYPE html>
<html lang="en">
<head>
<title>ACE in Action</title>
<style type="text/css" media="screen">
#editor {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
</head>
<body>
<div id="editor">
function foo(items) {
var x = "All this is syntax highlighted";
return x;
}
</div>
<script type="text/javascript" src="/static/require.js"></script>
<script>
require.config({
baseUrl: window.location.protocol + "//" + window.location.host
+ window.location.pathname.split("/").slice(0, -1).join("/"),
paths: {
ace: "/static/ace"
}
});
require(["ace/ace"], function (ace) {
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
});
</script>
</body>
</html>