Редактор Rich Content Editor изменяет HTML, добавленный с помощью настраиваемой кнопки панели инструментов

Резюме. Я пытаюсь спросить: делаем ли мы это совершенно неверным путем или есть способ помешать Sharepoint или его многофункциональному редактору изменять добавляемый HTML?

Я был «брошен» в проект, вращающийся вокруг Sharepoint 2007 (поверьте мне, я не совсем доволен этим), и одна из вещей, которые ищут, - это способ использовать область с богатым контентом для пользователи должны помещать «богатый контент», а затем добавлять к контенту определенные «дополнения», такие как расширяемые области контента, диалоги и т. д.

Первоначальный план атаки заключался в том, чтобы добавить настраиваемую кнопку на панель инструментов редактора расширенного контента Sharepoint, у нас есть код для этого, и он работает и т. Д., И прикрепить обработчики событий javascript к определенным элементам - что также работает - до определенной точки.

Одна вещь, которую мы делаем, - это использование элемента <a> и последующего <div> для настройки диалогового окна (используя jQuery UI для волшебства). Когда пользователь нажимает кнопку «Вставить диалог», в редактор вставляется следующее:

<a href="#" class="dialog-trigger">Click me to open the dialog</a>
<div class="dialog-content">
    this is some dialog content etc
</div>

Когда страница загружается, мы подключаемся к методу щелчка .dialog-trigger, берем родственника элемента a, который является .dialog-content, и настраиваем его как диалог. Это «работает» до тех пор, пока вы ничего не хотите редактировать.

Я обнаружил, что как только вы начинаете редактировать содержимое в .dialog-content DIV, редактор расширенного содержимого начинает изменять HTML, например, добавляя список в следующем HTML:

<li><div class=dialog-content>Some list item</div></li>
<li><div class=dialog-content>Some list item 2</div></li>
<li><div class=dialog-content>Another list item</div></li>

Как вы понимаете, это ломает то, что мы пытаемся сделать.

Подводя итог тому, о чем я пытаюсь спросить, идем ли мы по этому поводу совершенно неправильно, или есть способ помешать Sharepoint или его богатому редактору изменять добавляемый HTML?


person Matthew Savage    schedule 22.10.2009    source источник


Ответы (2)


Если вы просто помещаете HTML в содержимое редактора, вы не сможете помешать редактору вмешиваться в ваш HTML. Если у вас есть какой-то контент, который необходимо сохранить нетронутым, вам нужно сохранить его в другом месте и иметь для него заполнитель в редакторе, который содержит идентификатор для фактического фрагмента контента (например, изображение-заполнитель с идентификатором в атрибуте alt) . Вам нужно будет заменить такие заполнители реальным содержимым HTML при сохранении редактора и наоборот, когда редактор загрузится.

person Tim Down    schedule 22.10.2009

Я чувствую вашу боль, редактор форматированного текста SharePoint не лучший по сравнению с другими решениями с открытым исходным кодом. Как бы то ни было, возможно, вы сможете обучить своих пользователей использованию предопределенных стилей? Затем используйте JQuery для чего-нибудь.

Если вы сделаете следующее в своем CSS

/*.ms-rteCustom-anything else you want*/
/*e.g.*/
.ms-rteCustom-DialogTrigger {
    color:#333333
}

Теперь редактор sharepoint покажет вам «DialogTrigger» в разделе «Стили» и применит его как div.

В качестве альтернативы вы можете технически использовать другой редактор и опубликовать данные обратно в SharePoint с помощью SPAPI или веб-службы JQuery + SharePoint.

person Alex Nolasco    schedule 07.03.2010