ошибка ckeditor Uncaught TypeError: Невозможно прочитать свойство 'attribute' of null - PullRequest
0 голосов
/ 30 декабря 2018

Я хочу загрузить изображение с помощью ckeditor.Я хочу удалить изображение из редактора в случае ошибки.Но каждый раз, когда я сталкиваюсь с этой ошибкой.

Uncaught TypeError: Cannot read property 'attributes' of null
    at ckeditor.js:1275
    at CKEDITOR.htmlParser.element.forEach (ckeditor.js:313)
    at CKEDITOR.htmlParser.element.forEach (ckeditor.js:313)
    at a.<anonymous> (ckeditor.js:1274)
    at a.p (ckeditor.js:10)
    at a.<anonymous> (ckeditor.js:12)
    at a.CKEDITOR.editor.CKEDITOR.editor.fire (ckeditor.js:13)
    at CKEDITOR.htmlDataProcessor.toDataFormat (ckeditor.js:335)
    at $.getData (ckeditor.js:952)
    at $.<anonymous> (ckeditor.js:386)
Каждый раз, когда изображение загружается, оно сохраняет его в массиве.И если новое изображение было загружено и произошла ошибка.Сравните со старыми изображениями.И нашел изображения с ошибками.Это мой код.

        let oldImagesList = [];
        let newImagesList = [];

        editor.on('fileUploadResponse', function (evt) {
            let editorData = this.getData();

            let imgs = $(editorData).find('img').get();
            newImagesList=[];
            imgs.forEach(function (item) {
                newImagesList.push(item.src);
            });

            evt.stop();
            var data = evt.data,
                xhr = data.fileLoader.xhr,
                response = xhr.responseText.split('|');

            let Res = JSON.parse(response);
            console.log(evt)
            Array.prototype.diff = function(a) {
                return this.filter(function(i) {return a.indexOf(i) < 0;});
            };

            let diffs = $.unique( newImagesList.filter(x => !oldImagesList.includes(x)));
            if (Res.uploaded === 0) {
                evt.cancel();
                let wrapper = new DOMParser();
                wrapper.innerHTML = editorData;
                if (diffs.length > 0) {
                    diffs.forEach(function (item) {
                        jQuery( editor.editable().$ ).find(`img[src='${item}']`).parent('figure').remove();
                    });
                }

                editorData = this.getData();
                imgs = $(editorData).find('img').get();
                newImagesList=[];
                imgs.forEach(function (item) {
                    newImagesList.push(item.src);
                });
            }

            oldImagesList = newImagesList.slice(0);

            if (response[1]) {
                data.message = response[1];
                evt.cancel();
            } else {
                data.url = response[0];
            }
        });

спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...