首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SharePoint 2010 CEWP (100% JavaScript解决方案)中利用自定义样式和标记样式

如何在SharePoint 2010 CEWP (100% JavaScript解决方案)中利用自定义样式和标记样式
EN

Stack Overflow用户
提问于 2011-09-30 20:31:27
回答 1查看 2.5K关注 0票数 3

简而言之,使用RichHtmlField,我们可以自定义哪种样式和标记样式出现在条带上的下拉列表中。使用OOTB内容编辑器Web部件,我们不能。

在询问/对比了RichHtmlField与CEWP (发出的HTML/ JavaScript )之后,我确实找到了一个JavaScript解决方案。

当RichHtmlField发出一个页面脚本来初始化字段控件时,CEWP不会发出这样的初始化脚本。此外,PrefixStyleSheetStyleSheet相比,RichHtmlField释放的HTML属性数量要多得多,其中两个属性是StyleSheet

PrefixStyleSheet标识下拉菜单中使用的样式表前缀。StyleSheet是一个与品牌css文件相对的服务器url。

因此,如果所有这些都是真的,我们应该能够使用jQuery使用一个品牌样式表初始化一个CEWP:

代码语言:javascript
复制
<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中的母版页中,它将跨站点工作。

里面有一个计时器,因为根据脚本加载的顺序,可能会使您在完成之后所做的事情变得一团糟。如果这对你有用/不管用,请告诉我。

将这个问题的解决方案记录在某个地方是很酷的。

干杯,

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 15:33:51

信不信由你,迟了4年,这篇文章是有帮助的!

为了使它发挥作用,我不得不改变这一点:

代码语言:javascript
复制
 $("td[RteRedirect]").each(function() {

    var id = $(this).attr("RteRedirect"); 
        editSettings = $("#" + id);

谢谢

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7615767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档