CKEditor: удалить свойства стиля из вставленного содержимого

0

Я пытаюсь выяснить способ удаления свойств стиля из вставляемого содержимого HTML в экземпляр CKEditor. Я использовал следующее, чтобы полностью удалить атрибуты стиля, но я действительно хочу сохранить свойство margin-left.

CKEDITOR.on('instanceReady', function(ev) {
    ev.editor.on('paste', function(evt) {
        if (evt.data.type == 'html') {
            evt.data.dataValue = evt.data.dataValue.replace(/ style=".*?"/g, '');
         }
     }, null, null, 9);
});

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

Я изучаю методы jQuery и Javascript, чтобы попытаться выполнить это, но у меня пока не было успеха.

Теги:
ckeditor

1 ответ

0
Лучший ответ

Вы можете применить правильно настроенный разрешенный фильтр содержимого к вставленным данным. См. Этот ответ, чтобы узнать, как применить его к строке: применить фильтр расширенного содержимого CKEditor к строке

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

var filter = new CKEDITOR.filter(
    'p h1 h2 h3 img strong em ul ol li[*](*){margin-left}'
);

Это позволит использовать все атрибуты и классы, но только margin-left на этих элементах.


РЕДАКТИРОВАТЬ

Там есть простой способ перечислить все элементы:

var filter = new CKEDITOR.filter( {
    '$1': {
        // Use the hash containing all correct HTML elements
        // (plus some more things, but we can ignore them in this case).
        elements: CKEDITOR.dtd,
        attributes: true,
        classes: true,
        styles: 'margin-left'
    }
} );
  • 0
    Это относится только к вставленному контенту? Как только он появится в редакторе, к контенту могут быть применены дополнительные стили. Я просто хочу отфильтровать его, прежде чем вставить.
  • 0
    Я только что показал, как применить автономный фильтр к строке HTML. Если вы сделаете это в приемнике событий вставки, это повлияет только на вставленный контент.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню