0

現在、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 を使用してコンテンツの一部を変更しようとすると、リッチ テキスト エディターはこのロゴ左上隅に表示し、ユーザーが編集する必要があるテキストを部分的に覆い隠します。

マスター ページのスタイルを修正してこのロゴを非表示にしようとしましたが、これを行う方法が見つかりません。修正も検討しました

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 など) をすべてのページに適用したいのですが、ポップアップ リッチ テキスト エディターには適用したくありません。これは可能ですか?もしそうなら、どのように?

4

1 に答える 1

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を使用する代わりに、サイトのロゴの設定を検討することをお勧めします。[サイトの設定]>[タイトル、説明、アイコン]> [ロゴのURLと説明]に移動してURLを変更することにより、ロゴを手動で設定できます。または、 SPWeb.SiteLogoUrlプロパティを使用してコードで設定することもできます。これには、SiteLogoImageコントロールがカスタムマスターページに存在する必要があることに注意してください。

于 2010-03-09T22:45:37.293 に答える