2017-02-02 3 views
0

Я реализую CKEditor в своем приложении. Когда я пытаюсь создать экземпляр CKEditor в текстовое поле Я получаю следующую ошибкуCkEditor - Uncaught TypeError: Не удается прочитать свойство 'getSelection' undefined

Cannot read property 'getSelection' of undefined 

на ниже линии CKEditor

getNative: function() { 
return void 0 !== this._.cache.nativeSel ? this._.cache.nativeSel : this._.cache.nativeSel = B ? this.document.$.selection : this.document.getWindow().$.getSelection() } 

Любая помощь очень ценится.

ответ

-3

изменение функции е. $. OnLoad внутри ckeditor.js к ниже

f.$.onload=function(){var toutMs =5000; 
    if(CKEDITOR.document.getHead().$.childElementCount > 6) 
    { 
    toutMs=0; 
     } 
    setTimeout(function(){ 
    A(b,!0) 
    },toutMs) 
    } 
+1

Не делайте этого. Избегайте этого. Никогда не редактируйте основные файлы. – Juan

0
  1. У меня есть список статей.
  2. Каждый раз, когда я нажимал на любую статью, «диалог/модальный» должен быть открытым.
  3. в таком диалоговом или модальном виде был элемент ckeditor для содержимого моей статьи.
  4. Когда я нажал на первый, он работал как шарм.
  5. проблема была после нажатия на 2-й, 3-й, 4-й и т.д.

тогда я начал иметь эту ошибку.

TypeError: Cannot read property 'getSelection' of undefined 
    at CKEDITOR.dom.selection.getNative (ckeditor.js:448) 
    at new CKEDITOR.dom.selection (ckeditor.js:446) 
    at a.CKEDITOR.editor.getSelection (ckeditor.js:443) 
    at new CKEDITOR.plugins.undo.Image (ckeditor.js:1182) 
    at CKEDITOR.plugins.undo.UndoManager.save (ckeditor.js:1177) 
    at a.<anonymous> (ckeditor.js:1173) 
    at a.n (ckeditor.js:10) 
    at a.CKEDITOR.event.CKEDITOR.event.fire (ckeditor.js:12) 
    at a.CKEDITOR.editor.CKEDITOR.editor.fire (ckeditor.js:13) 
    at a.setData (ckeditor.js:275) 

решение для меня было легко, сказать компьютеру, чтобы уничтожить экземпляр CKEditor, когда диалог/модальный закрыт. легко! .. сейчас работает как шарм =)

  $mdDialog.show({ 
      parent:  parentEl, 
      targetEvent: $event, 
      templateUrl: '/md-templates/blog-article.html', 
      controller: DialogController, 
      scope:   $scope, 
      preserveScope: true, 
      onRemoving: function (event, removePromise) { 
       if (CKEDITOR.instances.body) CKEDITOR.instances.body.destroy(); 
      } 
     }); 
+0

Я потратил 20 минут, написав свои вышеприведенные инструкции, а гений положил минус ... .. вы должны увидеть, что мой скрипт работает. как я могу отчитываться в stackoverflow? это?.. –