【发布时间】:2016-03-07 13:39:25
【问题描述】:
几天来,我一直在寻找以下描述的问题的解决方案,但找不到任何帮助...
我在网页上的 6 个不同 DIV 上使用 Ace 编辑器(所以我有 6 个编辑器)。 基本上一切正常,我能够创建它们、设置它们(语言模式、软标签等)并在用户完成后管理它们的内容。
但是我在控制台中一直有相同的错误消息“未捕获的 ReferenceError:未定义窗口”。我得到了 6 次,页面上每个 Ace 编辑器 1 次。
这是我正在使用的 JS。 divIdsArray 是一个包含 6 个 DIV Id 的数组。
function initAceEditorFields()
{
$(document).ready(function(){
for (var i = 0 ; i < divIdsArray.length ; i++){
var l_arr_splitted = divIdsArray[i].split("_");
var l_str_code = l_arr_splitted[2];//Each div id contains either "js" or "html" which i am retrieving here
var l_ace_editor = ace.edit(divIdsArray[i]);
l_ace_editor.setShowPrintMargin(false);
l_ace_editor.getSession().setUseSoftTabs(false);
l_ace_editor.getSession().setTabSize(4);
l_ace_editor.$blockScrolling = Infinity;
if(l_str_code == "js"){
l_ace_editor.getSession().setMode("ace/mode/javascript");
}else{
l_ace_editor.getSession().setMode("ace/mode/html");
}
}
});
}
我正在加载文件:ace 包中的 ace.js、mode-javascript.js 和 mode-html.js。
我已尝试使用来自 github 存储库的 ace 编辑器构建:“src-min”和“src-min-noconflict”,并使用 Chrome、Mozilla 和 MS Edge 进行了测试,但我总是收到相同的错误消息。
这很奇怪,因为一切似乎都运行良好(或者至少我也想要它)。我只是不想在生产时将这些消息留在控制台中。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
请告诉我们显示的整个错误消息,包括文件名和行号。也正是您正在运行的 Ace 版本。回调堆栈也很有用。
-
感谢您的快速回复。我使用的是 2016.01.17 的 Ace 版本 1.2.3。
-
我在第 1 行从 worker-html.js 收到 3 条消息,在第 1 行从 worker-javascript.js 收到 3 条消息,因为这些是缩小文件。它对应于我正在设置的语言模式(js 中的 3 个和 html 中的 3 个)。但是我没有在我的 html 中加载这些文件,所以我不知道它们是如何被调用的。我是一名初级开发人员,不知道回调堆栈是什么意思。
-
@HBP :你能看看我发送的信息吗?谢谢!如果您需要更多信息,请告诉我!
标签: javascript ace-editor