Парсер таблицы стилей CKEditor

Я работаю с CKEditor 4.4.5 и его плагином Stylesheet Parser 4.4, но получаю пустой список из раскрывающегося списка стилей.

Чтобы упростить понимание моего вопроса, попробуйте этот код (загрузите его с примера сайта: http://sdk.ckeditor.com/samples/styles.html):

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="robots" content="noindex, nofollow">
    <title>Stylesheet Parser plugin</title>
    <script src="http://cdn.ckeditor.com/4.5.2/standard-all/ckeditor.js"></script>
</head>

<body>

    <textarea cols="80" id="editor2" name="editor2" rows="10" >&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;
    </textarea>

    <script>
        CKEDITOR.replace( 'editor2', {
            extraPlugins: 'stylesheetparser',
            height: 300,

            // Custom stylesheet for editor content.
            contentsCss: [ 'http://sdk.ckeditor.com/samples/assets/stylesheetparser/stylesheetparser.css' ],

            // Do not load the default Styles configuration.
            stylesSet: []

        } );
    </script>
</body>

</html>

Это действительно не работает. Но образец на этом сайте работает хорошо. Я также нашел еще один образец сайта: http://ckeditor.com/ckeditor_4.3_beta/samples/plugins/stylesheetparser/stylesheetparser.html

Я попытался скопировать весь исходный код с этого демонстрационного сайта, но безуспешно.

У кого-нибудь еще была такая же проблема? Как я могу заставить коды выше работать? Он в основном использует исходные коды с сайта CDN, поэтому я не думаю, что версия исходного кода имеет значение.


person Joey    schedule 09.11.2015    source источник
comment
междоменный запрос? Вы загружаете код .js с cdn.ckeditor.com, но пытаетесь загрузить css с sdk.ckeditor.com. в любом случае проверьте свой JS-запрос на наличие ошибок/предупреждений.   -  person Marc B    schedule 10.11.2015
comment
Ошибок в консоли нет. Загрузка css с sdk.ckeditor.com в порядке, потому что я думаю, что владелец сайта разрешил междоменный запрос. Кроме того, я попытался использовать свой локальный файл CSS. Тот же результат: пустой список.   -  person Joey    schedule 10.11.2015


Ответы (2)


Вам следует попробовать эту версию: http://ckeditor.com/addon/stylesheetparser-fixed у официального плагина есть некоторые проблемы с давних пор, но они, похоже, не планируют их исправлять.

person AlfonsoML    schedule 09.11.2015
comment
Но проводите ли вы тестирование с междоменной таблицей стилей? Я не думаю, что это сработает, я предложил этот плагин только потому, что он помогает в обычных настройках, когда есть проблемы с кешем и временем загрузки таблиц стилей. - person AlfonsoML; 10.11.2015
comment
Я думаю, что нашел проблему. Сейчас я использовал локальный файл css. Он отлично работает в IE и FireFox, но не работает в Chrome. Проблема в том, что в функции LoadStylesCSS(theDoc, skipSelectors, validSelectors). theDoc.styleSheets[i].cssRules всегда имеет значение null в Chrome. У вас такая же проблема в Chrome? @AlfonsoML - person Joey; 10.11.2015
comment
Нет, у меня нет проблем с Chrome. Может быть, это связано с тем, что вы установили какое-то расширение? - person AlfonsoML; 10.11.2015

Эта проблема вызвана междоменным запросом. Файл CSS находится на HTTP-сервере, и мое приложение работает с номером порта. Таким образом, они рассматриваются как междоменные запросы.

Я также протестировал HTML-страницу и файл CSS в локальных файлах. Тем не менее, file://...path по-прежнему обрабатывается как междоменный запрос в Chrome, но FF и IE работают с ним правильно.

Когда я попробовал это на сервере, он правильно работает с Chrome. К сожалению, похоже, что в Chrome и Firefox нет возможности заставить междоменный запрос работать.

person Joey    schedule 10.11.2015