Перехват CKEditor / событие запускается при переключении в / из представления источника - PullRequest
3 голосов
/ 16 марта 2012

Я пытаюсь преобразовать тег div в нечто, что я могу перетащить в CKEditor (как задано в другом вопросе). Знаете ли вы, как я могу вызвать событие, когда кто-то переключает между режимом просмотра источника и WYSIWYG режим ?

Спасибо,
-lony

Ответы [ 4 ]

5 голосов
/ 17 мая 2012

Я думаю, это то, что вы ищете:

CKEDITOR.on('instanceCreated', function(e) {
    e.editor.on('mode', function(e){
        // Do your stuff here
        alert(e.editor.mode);
    });
}); 
0 голосов
/ 22 марта 2016

Плагин CKEditor onChange:

Получать уведомление (новое событие) при каждом изменении содержимого CKEditor.

http://ckeditor.com/addon/onchange

0 голосов
/ 04 октября 2012

Я думаю, вы должны написать плагин для создания поддельного элемента для просмотра wysiwyg.

Ckeditor способен распознавать элементы, которые необходимо заменить на fake-elements.

Я сделал для тебя старт:

( function() {
CKEDITOR.plugins.add( 'myPlugin', {
    requires : [ 'fakeobjects' ],
    init: function( editor ) {
        var me = this;
        var pluginName = 'myPlugin';
        editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );

        editor.addCss( // your custom css for your placeholder here
            'div.myPluginElement' +
            '{' +
                'border: 1px solid #a9a9a9;' +
                'width: 70px;' +
                'height: 50px;' +
            '}'
        );

    },
    afterInit : function( editor ) {
        var dataProcessor = editor.dataProcessor,
            dataFilter = dataProcessor && dataProcessor.dataFilter;

        if ( dataFilter ) {
            dataFilter.addRules({
                elements : {
                    div : function( element ) {
                        if (typeof element.attributes['class'] !== 'undefined' && element.attributes['class'].indexOf('myPluginElement') != -1)
                            return editor.createFakeParserElement( element, 'myPluginElement', 'div', false);
                        else return;
                    }
                }
            });
        }
    }
} );

}) ();

0 голосов
/ 16 марта 2012

Если вы имеете в виду, что вы хотите зафиксировать изменения режима источника, то вы можете попробовать что-то вроде этого:


//add this to your CKeditor’s config.js
$('textarea.cke_source').live('keyup', function() {
  $(this)
    .closest('.cke_wrapper')
    .parent()
    .parent()
    .prev()
    .ckeditorGet()
    .fire('change');
});

Это обсуждение также может помочь: ckEditor Надеюсь, что это поможет

...