Плагин CKEditor для закрытия редактора - PullRequest
1 голос
/ 31 декабря 2010

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

Я придумал следующий код для плагина, который закрывает редактор, используя async: true и setTimeout:

 var cancelAddCmd =
 {
  modes : { wysiwyg:1, source:1 },
  async: true,
  exec : function( editor )
  {
   if(confirm('Are you sure you want to cancel editing and discard all content?')) setTimeout(function() { editor.destroy(); }, 100);
  }
 };

Проблема, которую я вижу, состоит в том, что он использует хитрый вызов setTimout, который, вероятно, имел бы смешанные результатыв зависимости от скорости выполнения компьютера - 100 мсек может не пройти к тому времени, когда будет нормально уничтожить редактор.

Есть ли правильный способ уничтожить редактор из плагина?Даже с асинхронным: правда;и никаких ошибок setTimeout не создается.

Возможно, возможно, было бы возможным решение остановить любой существующий / любой другой код, связанный с редактором, после запуска, если это возможно?


Я пыталсяиспользование событий, таких как on ('afterCommandExec', function () {editor.destroy ();}) и некоторых других событий, но это не очень помогло ... не похоже, что есть событие, когда редакторвыпрыгнул из своего стекового вызова для обработки кнопки.

И нет способа остановить выполнение путем более правильного удаления экземпляра CKEditor?

Ответы [ 2 ]

1 голос
/ 08 января 2011

Очевидно, что setTimeout является приемлемым, поскольку нет способа остановить выполнение кода в JS, как в PHP die ().

1 голос
/ 04 января 2011

Если я прав, вы хотите, чтобы ваш CKEditor был закрыт, но может или не может быть запущен какой-то процесс, который должен быть завершен первым.

Что вы должны сделать, это когда вы пытаетесь использовать CKEditor, сначала проверьте, существует ли он по-прежнему. Просто прекратите выполнение функции, если это не так. Вы также можете отложить уничтожение редактора, например, установив логическое значение в false и уничтожив их позже.

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