Короче говоря, с помощью RichHtmlField мы можем настроить, какие стили и стили разметки будут отображаться в раскрывающихся списках на ленте. Мы не можем использовать веб-часть OOTB Content Editor.
После опроса / противопоставления RichHtmlField и CEWP (испускаемый HTML / JavaScript) мне действительно удалось найти решение JavaScript.
В то время как RichHtmlField генерирует Page Script для инициализации элемента управления полем, CEWP не генерирует такой сценарий инициализации. Кроме того, RichHtmlField испускает значительно большее количество атрибутов HTML, чем CEWP, и два из этих атрибутов: PrefixStyleSheet и StyleSheet .
PrefixStyleSheet определяет префикс таблицы стилей, используемый в раскрывающемся меню.
Таблица стилей - это относительный URL сервера к фирменному файлу CSS.
Итак, при всех этих вещах мы сможем инициализировать CEWP с использованием фирменной таблицы стилей с помощью jQuery:
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(function() {
// window.setTimeout(function() {
$("div[RteRedirect]").each(function() {
var id = $(this).attr("RteRedirect"),
editSettings = $("#" + id);
if(editSettings.length > 0 && editSettings[0].PrefixStyleSheet != 'yourcustom-rte') {
editSettings[0]['PrefixStyleSheet'] = 'yourcustom-rte';
editSettings[0]['StyleSheet'] = '\u002fStyle Library\u002fen-US\u002fThemable\u002fCore Styles\u002f<somecustomstylesheet>.css';
RTE.Canvas.fixRegion(id, false);
}
});
// }, 2000);
}, "sp.ribbon.js");
</script>
Надеюсь, это кому-нибудь поможет. Этот код может идти во многих разных направлениях. Я просто представляю основы. Если вы добавите это на главную страницу внутри EditModePanel, она будет работать на нескольких сайтах.
Там есть таймер, поскольку в зависимости от порядка загрузки скрипта что-то может помешать тому, что вы сделали после того, как вы это сделали. Дайте мне знать, если это работает / не работает для вас.
Было бы здорово, чтобы где-нибудь вести подсчет решений этой проблемы.
Приветствия
M