Javascript Ace编辑器:未捕获引用错误:未定义窗口

Javascript Ace编辑器:未捕获引用错误:未定义窗口,javascript,ace-editor,Javascript,Ace Editor,几天来,我一直在寻找下面描述的问题的解决方案,但我找不到任何有帮助的 我在一个网页的6个不同分区上使用Ace编辑器(所以我有6个编辑器)。 基本上一切都很好,我能够创建它们,设置它们(语言模式,软标签等),并在用户完成后管理它们的内容 但我在控制台中一直有相同的错误消息“uncaughtreferenceerror:windowisnotdefined”。我得到它6次,每个Ace编辑器在页面上1次 这是我正在使用的JS。divIdsArray是一个包含6个DIVs ID的数组 function

几天来,我一直在寻找下面描述的问题的解决方案,但我找不到任何有帮助的

我在一个网页的6个不同分区上使用Ace编辑器(所以我有6个编辑器)。 基本上一切都很好,我能够创建它们,设置它们(语言模式,软标签等),并在用户完成后管理它们的内容

但我在控制台中一直有相同的错误消息“uncaughtreferenceerror:windowisnotdefined”。我得到它6次,每个Ace编辑器在页面上1次

这是我正在使用的JS。divIdsArray是一个包含6个DIVs 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");
        }
    }
 });

}
函数initAceEditorFields()
{
$(文档).ready(函数(){
对于(var i=0;i
我正在从ace包加载文件:ace.js、mode-javascript.js和mode-html.js

我尝试过ace编辑器构建:github repo中的“src min”和“src min noconflict”,并使用Chrome、Mozilla和MS Edge进行了测试,但我总是收到相同的错误消息

这很奇怪,因为一切似乎都运转良好(或者至少我也希望如此)。我只是不想在投入生产时将这些消息留在控制台中

任何帮助都将不胜感激


谢谢大家!

您的ace编辑器必须在某个地方使用web workers,然后web worker中调用的某个函数正试图访问“窗口”。您显示给我们的代码没有对window的引用。仔细检查与ace的其他交互,看看是否传入了引用“window”或jquery的函数,或者全局范围内的任何其他依赖项。如果没有,那么控制台中的错误超出了您的控制范围,我怀疑。

请告诉我们显示的整个错误消息,包括文件名和行号。以及您正在运行的Ace的确切版本。回调堆栈也很有用。谢谢您的快速回复。我正在使用2016年1月17日发布的Ace版本1.2.3。我从第1行的worker-html.js和第1行的worker-javascript.js分别收到3条消息,因为这些都是缩小的文件。它对应于我正在设置的语言模式(3个在js中,3个在html中)。但是我没有在我的html中加载这些文件,所以我不知道它们是如何调用的。我是一名初级开发人员,不知道回调堆栈是什么意思。@HBP:你能看看我发送的信息吗?非常感谢。让我知道,如果有任何更多的信息,你可能需要!谢谢你的快速回复。我将继续仔细检查我的代码,但我已将问题隔离到这一个函数。我想我一定是忘了什么东西,否则就像你说的,我无法控制。