我目前在尝试在MOSS 2007网站定义中设置HTML富文本编辑器样式时遇到问题。
我在body标签的自定义母版页上指定了内联公司徽标,如下所示:
<%@Master language="C#"%>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="wssuc" TagName="Welcome" src="~/_controltemplates/Welcome.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="DesignModeConsole" src="~/_controltemplates/DesignModeConsole.ascx" %>
<HTML id="HTML1" dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office">
<HEAD id="HEAD1" runat="server">
<META Name="GENERATOR" Content="Microsoft SharePoint">
<META Name="progid" Content="SharePoint.WebPartPage.Document">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META HTTP-EQUIV="Expires" content="0">
<SharePoint:RobotsMetaTag ID="RobotsMetaTag1" runat="server"/>
<Title ID=onetidTitle><asp:ContentPlaceHolder id=PlaceHolderPageTitle runat="server"/></Title>
<SharePoint:CssLink ID="CssLink1" runat="server"/>
<SharePoint:Theme ID="Theme1" runat="server"/>
<SharePoint:ScriptLink ID="ScriptLink1" language="javascript" name="core.js" Defer="true" runat="server" />
<SharePoint:CustomJSUrl ID="CustomJSUrl1" runat="server" />
<SharePoint:SoapDiscoveryLink ID="SoapDiscoveryLink1" runat="server" />
<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>
<SharePoint:DelegateControl ID="DelegateControl1" runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/>
<style>
body
{
background-image:url(/_layouts/images/corp/corpLogo.gif);
background-repeat:no-repeat;
}
</style>
</HEAD>
...
当部署为功能时,此母版页适用于我们所有标准的开箱即用页面和网站 - 徽标显示在左上角(代码也使用单独定义的颜色方案)样式表)。
但是,当我们尝试使用CEWP修改内容时,富文本编辑器 会在左上角显示此徽标,部分遮盖用户需要编辑的文本。< / p>
我尝试修改母版页中的样式以隐藏此徽标但无法找到执行此操作的方法。我也考虑过修改
C:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ LAYOUTS \ 1033 \ htmleditor.js
和实际的富文本编辑器本身在
C:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ LAYOUTS \ RTE2PUEditor.aspx
但这并没有带来任何成功(我真的宁愿不这样做!!)。
有人能指出我正确的方向吗?
我想要一个适用于所有页面的自定义品牌(徽标,css等),但不到弹出的富文本编辑器。这可能吗?如果是这样,怎么样?
答案 0 :(得分:2)
HtmlEditor.js中的RTE2_GenerateLaunchArguments方法复制页面上的所有样式表和样式:
var styleRules=new Array();
var styleRulesUrl=new Array();
for (var i=0; i<document.styleSheets.length; i++)
{
var styleSheet_href=document.styleSheets[i].href;
if (styleSheet_href !="")
{
styleRulesUrl[styleRulesUrl.length]=styleSheet_href;
}
else
{
var rules=document.styleSheets[i].rules;
for (var j=0; j<rules.length; j++)
{
styleRules[styleRules.length]=rules[j];
}
}
}
然后传递这些值并将其应用于模态对话框RTE2PUEditor.aspx。看起来最快的解决方法是使用表单而不是body标签:
form#aspnetForm
{
background-image:url(/_layouts/images/corp/corpLogo.gif);
background-repeat:no-repeat;
}
RTE2PUEditor.aspx上的表单ID是RTE2PUEditorForm,而大多数其他页面(尤其是使用主页面的页面)都使用aspnetForm。
也就是说,您可能希望设置网站徽标而不是使用CSS。您可以通过转到“网站设置”&gt;手动设置徽标。标题,描述和图标&gt;徽标URL和描述以及更改URL。或者您可以使用SPWeb.SiteLogoUrl属性通过代码进行设置。请注意,这要求您的自定义母版页上存在SiteLogoImage控件。