CKEditor разбивает пользовательские теги .NET путем преобразования одинарных кавычек в двойные кавычки - PullRequest
0 голосов
/ 19 апреля 2011

По запросу клиента мы только что обновили пользовательскую систему CMS для большого сайта с FCKEditor 2.x до CKEditor 3.5.3.

Внутри ItemTemplate у меня есть пользовательский тег UserControl, в котором атрибутызаполняется DataBinding, вот так:

<my:Viewer runat="server">
    <ItemTemplate>
        <my:CustomTag runat="server"
            ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>' />
    </ItemTemplate>
</my:Viewer>

Итак, дело в том, что вышеприведенное работает просто отлично.Однако, когда HTML помещается в последний CKEditor, CKEditor изменяет атрибут ImageUrl, чтобы использовать двойные кавычки вместо одинарных кавычек.Как только он заменяется на двойные кавычки, он вызывает ошибку синтаксического анализа на странице .aspx.Изменение: "ImageUrl" to &quot;ImageUrl&quot; работает, но это не идеально для нашего клиента, которому придется обновлять каждую страницу, которая существует в очень большой системе CMS.Поэтому я задаю этот вопрос, надеясь, что кто-то знает способ переключения CKEditor на использование одинарных кавычек в атрибутах HTML по умолчанию вместо двойных кавычек, чтобы уменьшить объем работы, которую должен будет выполнить мой клиент.

Я ищу только простые изменения типа конфигурации, а не исправления редактора и т. Д.

Ответы [ 2 ]

0 голосов
/ 16 августа 2011

Я собираюсь сказать, что «решение, которое я упомянул, это слишком много работы, - это просто единственный ответ ... просто для того, чтобы закрыть это. Или, если я смогу найти способ, я отзовуВопрос. Спасибо rqmedes за попытку ... Я действительно забыл все об этом вопросе, пока не получу ваш ответ

:)

0 голосов
/ 15 августа 2011

Это должно делать то, что вы хотите
Взято отсюда
http://cksource.com/forums/viewtopic.php?f=11&t=20647&sid=f47526ecfb1f2303ad0b923ceed7aafe&start=10

Чтобы CKEditor не менял специальные символы: переключение в режиме просмотра источника:

CKEDITOR.instances.TEXT.on( 'mode', function(ev) {
      if ( ev.editor.mode == 'source' ) {
                        var str=ev.editor.getData();
         str=str.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");
         ev.editor.textarea.setValue(str);
      }
});

При сохранении отредактированного документа:

var html=CKEDITOR.instances.TEXT.getData()
html=html.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, "\"");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...