我使用的是Tridion 2011 SP1和Firefox 16.0.2,Internet Explorer 8,Internet Explorer 9和Chrome 23.0.1271.95。
当我在任何浏览器中打开一个组件并删除富文本字段的Design
视图中的所有文本时(多次按删除和退格键),我在{{{{{{{{ 1}}查看。这些因浏览器而异。
Source
<br />
<p><br /></p>
<p></p>
我查看了hot fixes的列表,但没有任何相关内容。
有什么想法吗?
答案 0 :(得分:4)
这听起来像是一个应该提交给SDL客户支持的错误。 IE,Chrome和FF的行为是否有所不同?
除非支持可以提供热修复,否则我认为您唯一的选择是使用过滤XSLT过滤掉单独的BR(如Frank建议的那样)。创建新的富文本字段时使用的默认XSLT过滤器包含此过滤,如下所示(最后<template>
节点)。
<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(., ' ', '')) = '' 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(., ' ', '')) = '' 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>