David
David

Reputation: 11

Ace Editor: Uncaught ReferenceError: window is not defined

I have been looking for a solution to below described issue for a few days but I couldn't find anything helping...

I am using Ace editor on 6 different DIVs on a webpage (so I have 6 editors). Basically everything works fine, I am able to create them, set them up (language mode, soft tabs, etc.) and manage their content once the user is done.

BUT I keep having the same error message in the console "Uncaught ReferenceError: window is not defined". I get it 6 times, 1 per Ace editor on the page.

Here is the JS I am using. divIdsArray is an array containing the 6 DIVs Ids.

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");
        }
    }
 });

}

I am loading the files: ace.js, mode-javascript.js and mode-html.js from the ace package.

I have tried with ace editor builds: "src-min" and "src-min-noconflict" from the github repo and I tested with Chrome, Mozilla and MS Edge but I always get the same error message.

It is strange as everything seems to be working fine (or at least as I want it too). I just don't want to leave these messages in the console when I go to production.

Any help will be greatly appreciated.

Thank you!

Upvotes: 1

Views: 2075

Answers (1)

bbsimonbb
bbsimonbb

Reputation: 29002

Your ace editor must be using web workers somewhere, then some function called inside a web worker is trying to access "window". The code you've shown us has no references to window. Scrutinize your other interactions with ace to see if you ever pass in a function that references "window" or jquery, or any other dependency in the global scope. If not, then the error in the console is outside your control I suspect.

Upvotes: 1

Related Questions