Как сохранить TinyMCE после обратной передачи в UpdatePanel - PullRequest
6 голосов
/ 17 августа 2010

Когда я нажимаю кнопку, которая вызывает обратную передачу на UpdatePanel, она вызывает tinyMCE.triggerSave().

. Перезагрузка панели и редактор снова появляется, но когда я пытаюсь вызвать tinyMCE.triggerSave()во второй раз я получаю следующую ошибку:

g.win.document is null

Я, хотя он получал старый экземпляр, но я также удаляю элемент управления (tinyMCE.execCommand('mceRemoveControl',false,'Editor');) после вызова сохранения.Несмотря на это, он все еще падает во второй раз.

Как мне это исправить?

Ответы [ 5 ]

6 голосов
/ 19 августа 2010

tinyMCE.execCommand ('mceRemoveControl', true, 'Editor');

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

2 голосов
/ 20 февраля 2016

У меня та же проблема. Для ее исправления необходимо добавить код сценария для элемента создания сообщения назад. моя кнопка создать пост назад, я добавляю его OnClientClick ():

<asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()"
                        runat="server">save</asp:LinkButton>

и скрипт:

function dotim() {
   tinyMCE.triggerSave();
  } // this is my attempt at a fix
2 голосов
/ 26 октября 2014

Для tinymce 3.2.x используйте следующее для удаления экземпляра tinyMCE в IE8 или любом другом браузере. Так как функция tinymce.execCommand делает поля ввода не редактируемыми в IE8.

tinyMCE.remove(editor); //editor is instance of tinymce editor and not editor id

Это исправит ошибку «Отказано в доступе» без отключения других полей ввода на той же странице.

2 голосов
/ 24 октября 2013

После долгих недоразумений я обнаружил, что исправление, которое @ André Gadonski опубликовал, больше не работает в TinyMCE версии 4. Мало того, что оно не работает, оно не дает никаких сообщений об ошибках консоли!

Новая команда mceRemoveEditor

Источник: http://www.tinymce.com/forum/viewtopic.php?id=31256

Я обнаружил, что это можно использовать либо непосредственно перед повторной инициализацией TinyMCE, либо непосредственно перед обновлением панели обновления ASP с помощью;

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);

function BeginRequestHandler(sender, args) {
    tinymce.execCommand('mceRemoveEditor', true, 'EditorID');
}
0 голосов
/ 30 июля 2018

Это было так полезно для меня.

Я использовал tinymce в angular 2. Но когда я был перенаправлен, tinymce исчез. Я думаю, это из-за повторного использования tinymce. Таким образом, я удалил tinymce перед использованием.

tinymce.execCommand('mceRemoveEditor', true, 'templateEditor');
  tinymce.init({
    selector: '#templateEditor',
    menubar: false,
    plugins: ['autoresize']
  });

Спасибо.

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