как изменить загруженную таблицу стилей после инициализации ckeditor - PullRequest
4 голосов
/ 17 февраля 2010

Возможно ли динамически изменить загруженную таблицу стилей для экземпляра ckeditor?

т.е. у меня есть экземпляр ckeditor со следующей конфигурацией: CKEDITOR.replace ('_ content', {"resize_enabled": true, "customConfig": "/ kmt / js / ckeditor_config.js", "contentsCss": "/ custom / ckeditorstyle.css", "contentWidth": "240" });

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

Ответы [ 2 ]

4 голосов
/ 17 февраля 2010

Вы можете объединить код, указанный в ответе на этот вопрос SO (Как динамически добавлять таблицы стилей во время выполнения) с принятым ответом на этот вопрос ТАК вопрос (Как получить доступ к элементу body экземпляра CKEditor в JavaScript).

3 голосов
/ 17 февраля 2010

Спасибо Пекке, я достиг решения через:

$('#stylesheeetSelector').change(function() {
    $.post('/getStylesheet', {id: $(this).val()}, function(data) {
        for(i in CKEDITOR.instances) {
            var linkElement = $(CKEDITOR.instances[i].document.$).find('link');
            if (data.editorStylesheet > 0) {
                if (linkElement.length == 0) {
                    $(CKEDITOR.instances[i].document.$).find('head').append('<link rel="stylesheet" type="text/css" href="'+ data.editorStylesheet +'">');
                } else {
                    linkElement.attr('href', data.editorStylesheet)
                }
            } else if (linkElement.length > 0) {
                linkElement.remove();
            }
        }
    });
});

Он работает путем выборки объекта JSON, заполненного (среди прочего) URL таблицы стилей, и устанавливает (или удаляет, если его нет) выбранную таблицу стилей ...

Чисто и просто!

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