页面编辑器中的 Sitecore 富文本字段在包含 HTML 格式时不可编辑

Sitecore rich text field in page editor is not editable when it contains HTML formatting

我有许多可在页面编辑器中编辑的字段。其中之一是富文本字段。这是 html:

@foreach (var speaker in Model.Speakers)
{
    <div class="speaker__item" id="@speaker.Id">
        <div class="speaker__media">
            @RenderImage(speaker, x => x.Speaker_Image, isEditable: true)
        </div>
        <div class="speaker__info">
            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Name))
            {
                <h4 class="speaker__name">@Editable(speaker, x => x.Speaker_Name)</h4>
            }

            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Title))
            {
                <p class="speaker__title">@Editable(speaker, x => x.Speaker_Title)</p>
            }

            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Description))
            {
                <div class="speaker__bio">
                    <p>@Editable(speaker, x => x.Speaker_Description)</p>
                </div>
            }

            @RenderLink(speaker, x => x.Speaker_Bio, attributes: new { @class = "speaker__link" }, isEditable: true)
        </div>
    </div>
}

富文本字段是Speaker_Description。当字段中没有 HTML 时(即纯文本),它会正确呈现并且可以在页面编辑器中编辑。当字段确实包含 html 时,例如包裹在 <p> 标记中或包含换行符,它会正确呈现,但在页面上不可编辑。我仍然可以在 Sitecore 中编辑该字段,但该区域在页面编辑器中不可点击。

当您将可编辑的富文本放入 <p> 标签时,这是一个已知问题。

<p> 标签中不允许包含大量 html 标签。这就是为什么您的浏览器会关闭 <p> 标签并破坏可编辑富文本的功能。

删除 @Editable 周围的 <p> 标签。

这是一个已知问题,但这是找出导致问题的 p 标签(很可能是 @editable 周围)的最快方法,打开开发工具并查看控制台是否有错误。希望这有帮助