无法在ckeditor中设置undefined的属性“ dir”

时间:2018-06-30 07:10:22

标签: javascript ckeditor requirejs

我遇到了Uncaught TypeError:当我尝试加载ckeditor时,无法设置未定义的属性“ dir”。我正在使用requireJs加载Js及其依赖关系,还使用gulp进行缩小。

我的requireJs配置文件:

requirejs.config({
    baseUrl:"/js",
    paths: {
        "jquery": "vendors/jquery",
        "ckeditorFull":"vendors/ckeditor/ckeditor"
         },
    shim: {
        "ckeditorFull":{
            deps:['jquery']
        }
           }
});

require(["app"],function(App){
    App.init();
});

我使用的是Ckeditor版本4.9.2完整版。我在初始化ckeditor之前添加了基本路径。

define([
    "jquery","ckeditorFull"
],function($){

    var ckeditorFull = function()
    {
        try{
            window.CKEDITOR_BASEPATH = '../vendors/ckeditor/';
            CKEDITOR.replace( 'summary-ckeditor',{
                language: 'en'
            });

        }
        catch(err) {
        }
    };
    var init = function(){
            ckeditorFull();
    };
    return  {
        init:init,      
    }
}); 

然后我尝试运行该应用程序,但在控制台上出现以下错误。

 Uncaught TypeError: Cannot set property 'dir' of undefined
    at Object.d (app.min.js:24250)
    at e (app.min.js:24251)
    at Array.z (app.min.js:24251)
    at y (app.min.js:24251)
    at HTMLScriptElement.A.CKEDITOR.env.ie.e.$.onerror

我尝试了所有可能的方法,但仍然无法解决。请允许我,谢谢!!

1 个答案:

答案 0 :(得分:0)

对于其他有此问题的人(因为它到现在为止仍是最新版本),如果您在解决方案中自托管了CKEditor脚本(例如,对于经典的ASP.NET应用程序),而您没有在CKEditor文件夹中具有该插件的所有本地化文件,这可能会导致此问题发生。

例如,我们的var selectedResults = Results .Where(s => s.result == 0 && s.result != null) .OrderBy(s => s.id) .ThenBy(s => s.result) .ToList(); 文件夹中只有en.js文件,而该错误是在同时使用英语和丹麦语作为其浏览器语言的用户时发生的。 CKEditor尝试自动将编辑器的语言设置为丹麦语,并尝试加载/CKEditor/lang/文件(该文件不存在(导致404错误))。将以下内容添加到config.js文件中可以解决我们的问题:

/CKEditor/lang/da.js

setting config.language确保将编辑器的语言设置为英语,而不是自动检测到。