Trong hệ thống quản lý nội dung SDL Tridion 2011, khi chỉnh sửa một thành phần trong trường văn bản có định dạng (RTF), tôi nhận thấy nhấn enter kết quả trong các thẻ HTML khác nhau trong nguồn.
Tôi nghĩ rằng nó dựa trên trình duyệt kể từ khi tôi <div>
sử dụng Chrome. Làm cách nào để đảm bảo tôi nhận được <p>
thẻ trong tất cả các trình duyệt?
Cập nhật:
SDL Tridion 2011 SP1 có phần sau trong bộ lọc văn bản giàu lược đồ XSLT mặc định, xuất hiện để khắc phục tình huống nhấn enter khi chỉnh sửa Văn bản hoặc đoạn văn bản thông thường. Tôi vẫn gặp sự cố khi nhấn enter sau một tiêu đề, xuất hiện dưới dạng div
trong Chrome.
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" version="1.0">
<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>
Câu hỏi cập nhật sau đó là:
Làm cách nào để đảm bảo tôi nhận được <p>
thẻ trong tất cả các trình duyệt, ngay cả khi nhấn enter sau tiêu đề?