【问题标题】:Ace Editor: Uncaught ReferenceError: window is not definedAce Editor: Uncaught ReferenceError: window is not defined
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 感谢您的快速回复。我将继续检查我的代码,但我已将问题隔离到这个函数。我想我一定是忘记了设置中的某些内容,或者正如你所说的,我无法控制。
猜你喜欢
  • 1970-01-01
  • 2019-02-08
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2019-01-22
  • 2019-12-31
  • 2020-05-24
相关资源
最近更新 更多