Нужно автосохранить TinyMCE - PullRequest
       6

Нужно автосохранить TinyMCE

2 голосов
/ 23 декабря 2009

Мне нужна помощь по автосохранению tinyMCE. Я хочу сохранить содержимое внутри крошечного в соответствующее текстовое поле после обновления содержимого. Так что, когда я делаю вызов ajax, содержимое в текстовой области готово к публикации.

В настоящее время у меня есть этот небольшой кусочек кода, но он обновляет текстовую область только при небольшом нажатии кнопки (например, жирным шрифтом, курсивом, подчеркиванием и т. Д.). У меня также есть ссылка, где я нашел код. Любая помощь будет оценена.

$('.AjaxEdit textarea.tiny').tinymce({

    //other init options

    //need this function to save tiny data before Ajax call
    //http://www.webmasterkitchen.com/article/tinymce-ajax-form-submission/
    setup : function(ed) {
        ed.onChange.add(function(ed) {
            tinyMCE.triggerSave();
        });
    }
});

Ответы [ 4 ]

1 голос
/ 02 мая 2013

Хотя вопрос довольно старый, я натолкнулся на поиски плагина. В конце я реализовал свой собственный плагин.

Я написал плагин, который отправляет данные формы на указанный URL каждые x секунд. Я опубликовал это здесь.

Короче говоря, идея состоит в том, чтобы создать iframe, динамически изменить цель и действие формы и отправить форму, чтобы стимулировать эффект ajax. После сохранения я помещаю элемент формы в исходное состояние, чтобы, если пользователь захочет сохранить вручную, у него не возникнет никаких трудностей.

Обратите внимание, что плагин, который я написал, предназначен для tinymce4. Вам придется немного изменить исходный код для более старых версий.

1 голос
/ 11 июня 2010

Лучше всего настроить ваш вызов AJAX так, чтобы он извлекал контент прямо из TinyMCE или triggerSave непосредственно перед вызовом AJAX, а не пытаться постоянно синхронизировать текстовую область с содержимым редактора. Сериализация и фильтрация всего документа, чтобы его можно было хранить при каждом изменении, является основным ударом по производительности.

Если вам действительно нужно синхронизировать текстовую область, вам нужно добавить слушатели модификации DOM к документу в iframe, который TinyMCE создает для хранения контента - вы можете получить его с помощью getDoc () (см. http://tinymce.ephox.com/documentation/api/index.html#class_tinymce.Editor.html-getDoc). Здесь у вас будут серьезные проблемы с производительностью.

С уважением,

Адриан Саттон
http://tinymce.ephox.com

0 голосов
/ 11 июля 2012

К вашему сведению, я сделал это так:

$('textarea.wysiwyg').tinymce({
  ...

  onchange_callback : function(inst) {

    // Prints the DOM element (textarea) to the console.
    console.log( inst.getElement() );

    // Prints the content of tinyMCE to the console.
    console.log( inst.getBody().innerHTML );

  }

});

Официальная документация по событию onchange_callback

0 голосов
/ 22 июля 2010

Вы должны взглянуть на этот плагин автосохранения http://code.google.com/p/tinyautosave/

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