Sharepoint Rich Content Editor, добавляющий HTML, добавлен из пользовательской кнопки панели инструментов - PullRequest
1 голос
/ 22 октября 2009

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

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

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

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

<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, редактор rich-content начинает манипулировать 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-кодом?

Ответы [ 2 ]

0 голосов
/ 07 марта 2010

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

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

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

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

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

0 голосов
/ 22 октября 2009

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

...