Невозможно установить свойство 'dir' из неопределенного в ckeditor - PullRequest
0 голосов
/ 30 июня 2018

Я получаю Uncaught TypeError: Невозможно установить свойство 'dir' из неопределенного, когда я пытаюсь загрузить ckeditor. Я использую 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 голосов
/ 05 августа 2019

Для других с этой проблемой (так как она по-прежнему сохраняется в самой последней версии в настоящее время), если вы самостоятельно разместили скрипт CKEditor в своем решении (например, для классического приложения ASP.NET), и вы этого не сделаете храните все файлы локализации плагина в папке CKEditor, что может привести к возникновению этой проблемы.

Например, у нас был только файл en.js в нашей папке /CKEditor/lang/, и ошибка возникла, когда пользователь, который использовал английский и датский языки в качестве языков своего браузера. CKEditor попытался автоматически установить язык редактора на датский и попытался загрузить файл /CKEditor/lang/da.js, который не существовал (что вызвало ошибку 404). Добавление следующего в файл config.js решило проблему для нас:

config.language = 'en';

настройка config.language гарантирует, что язык редактора установлен на английский вместо автоматического определения.

...