Tridion 从文本框中删除所有文本会留下一个<;br>;标签

Tridion 从文本框中删除所有文本会留下一个<;br>;标签,tridion,tridion-2011,Tridion,Tridion 2011,我正在使用Tridion 2011 SP1和Firefox 16.0.2、Internet Explorer 8、Internet Explorer 9和Chrome 23.0.1271.95 当我在任何浏览器中打开一个组件并删除富格文本字段的Design视图中的所有文本(多次按delete和backspace)时,我在源视图中留下了各种标记。它们因浏览器而异 Firefox: Chrome: IE8: IE9: 我已经检查了名单,没有任何相关内容 有什么想法吗?这听起来像是一个bug,应该

我正在使用Tridion 2011 SP1和Firefox 16.0.2、Internet Explorer 8、Internet Explorer 9和Chrome 23.0.1271.95

当我在任何浏览器中打开一个组件并删除富格文本字段的
Design
视图中的所有文本(多次按delete和backspace)时,我在
视图中留下了各种标记。它们因浏览器而异

  • Firefox:

  • Chrome:

  • IE8:

  • IE9:

我已经检查了名单,没有任何相关内容


有什么想法吗?

这听起来像是一个bug,应该提交给SDL客户支持。这种行为与IE、Chrome和FF不同吗

除非支持提供热修复,否则我认为您唯一的选择是使用过滤XSLT过滤掉孤立的BR(正如Frank所建议的)。创建新的富文本字段时使用的默认XSLT筛选器包含此筛选,如下所示(最后一个
节点)


这听起来像是一个bug,应该提交给SDL客户支持。这种行为与IE、Chrome和FF不同吗

除非支持提供热修复,否则我认为您唯一的选择是使用过滤XSLT过滤掉孤立的BR(正如Frank所建议的)。创建新的富文本字段时使用的默认XSLT筛选器包含此筛选,如下所示(最后一个
节点)



您可以使用自定义XSLT筛选器或事件系统删除

。@FrankvanPuffelen首先保留“
”标记的原因是什么?这似乎是一个bug。您确定没有自定义XSLT吗?当然,也可以在XSLT中添加br标记。您可以尝试使用全新的富文本字段吗?您可以使用自定义XSLT筛选器或事件系统删除

。@FrankvanPuffelen是否有理由将“
”标记保留在此处?这似乎是一个bug。您确定没有自定义XSLT吗?当然,也可以在XSLT中添加br标记。你能用一个全新的富文本字段试试吗?很抱歉回复太晚了。不同浏览器的行为确实不同。IE8/9留下了标签。铬树叶

。我会在有时间正确修复它时更新。花了一段时间才回到这个问题上。事实证明,Tridion2011的默认XSLT过滤器在默认情况下会删除错误的
标记。我使用的XSLT是从R5.3迁移来的。很抱歉回复太晚。不同浏览器的行为确实不同。IE8/9留下了标签。铬树叶

。我会在有时间正确修复它时更新。花了一段时间才回到这个问题上。事实证明,Tridion2011的默认XSLT过滤器在默认情况下会删除错误的
标记。我使用的XSLT来自R5.3迁移。
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
    <output omit-xml-declaration="yes" method="xml" cdata-section-elements="script"></output>
    <template match="/ | node() | @*">
        <copy>
            <apply-templates select="node() | @*"></apply-templates>
        </copy>
    </template>
    <template match="*[      (self::br or self::p or self::div)     and      normalize-space(translate(., &apos; &apos;, &apos;&apos;)) = &apos;&apos;     and      not(@*)     and      not(processing-instruction())     and      not(comment())     and      not(*[not(self::br) or @* or * or node()])     and      not(following::node()[not(         (self::text() or self::br or self::p or self::div)        and         normalize-space(translate(., &apos; &apos;, &apos;&apos;)) = &apos;&apos;        and         not(@*)        and         not(processing-instruction())        and         not(comment())        and         not(*[not(self::br) or @* or * or node()])       )])     ]">
        <!-- ignore all paragraphs and line-breaks at the end that have nothing but (non-breaking) spaces and line breaks -->
    </template>
    <template match="br[parent::div and not(preceding-sibling::node()) and not(following-sibling::node())]">
        <!-- Chrome generates <div><br/></div>. Renders differently in different browsers. Replace it with a non-breaking space -->
        <text> </text>
    </template>
</stylesheet>