Absatz-Tags in verschiedenen Browsern mit SDL Tridion?

7

Beim Bearbeiten einer Komponente in einem Rich-Text-Feld (RTF) im Content-Management-System von SDL Tridion 2011 habe ich festgestellt, dass das Drücken der Eingabetaste zu verschiedenen HTML-Tags in der Quelle führt.

Ich denke, es basiert auf dem Browser, da ich <div>mit Chrome komme . Wie stelle ich sicher, dass ich <p>Tags in allen Browsern erhalte ?

Update: SDL Tridion 2011 SP1 enthält Folgendes im Standard-XSLT-Schema-Rich-Text-Filter, der das Szenario des Drücken der Eingabetaste beim Bearbeiten von normalem Text oder Absätzen zu beheben scheint. Ich habe immer noch das Problem, wenn ich nach einer Überschrift die Eingabetaste drücke, die divin Chrome angezeigt wird.

<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(., &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>

Die aktualisierte Frage lautet dann:

Wie stelle ich sicher, dass ich <p>Tags in allen Browsern erhalte , auch wenn ich nach einer Überschrift die Eingabetaste drücke?

Alvin Reyes
quelle

Antworten:

6

Das Problem ist nicht neu und ein allgemeines Problem bei der Verwendung von contenteditable.
/programming/2735672/how-to-change-behavior-of-contenteditable-blocks-after-on-enter-pressed-in-vario

Telerik hat eine Lösung herausgebracht, bei der Sie angeben können, welches Verhalten Sie möchten. Ich schlage vor, dass SDL dies auch tut. http://www.telerik.com/help/aspnet-ajax/editor-using-newlinebr-property.html

Aber es scheint, dass es noch keine Aufmerksamkeit bekommen hat. Die größere Frage ist, wann SDL HTML 5 verwendet ...

Gemeinschaft
quelle
Danke, @Hendrik. Ich sehe, dass SP1 einiges davon mit einem XSLT-Filterwechsel behoben hat, aber nach Überschriften nicht zurückkehrt.
5

Wir haben genau das gleiche Problem - dies basiert auf einem bestimmten Browserverhalten. Ich habe festgestellt, dass Fire Fox, IE und Chrome unterschiedliche Ergebnisse liefern. Wenn das Gedächtnis gut funktioniert:

  • IE gibt <p>Tags
  • Fire Fox gibt ein Doppel <br/>
  • Chrome verwendet ein <div/>Tag

Ich habe ein Ticket beim Kundensupport eingereicht, aber derzeit habe ich noch keine Lösung. Daher fügen wir im Moment Inhalte in das Feld ein, anstatt sie tatsächlich zu bearbeiten. Andernfalls werden unsere XHTML-Standards durcheinander gebracht und unser CSS funktioniert nicht richtig.

Chris Summers
quelle
Ich erinnere mich nicht an die Version, auf der ich war (definitiv vor SP1, aber entweder GA oder Hotfix Rollup) und ich hatte das gleiche Verhalten. Ich habe die folgende Version auf meinem Testcomputer und erhalte <p>Tags mit Chrome in RTF, indem ich jetzt die Eingabetaste drücke. Content Manager Explorer - Build 6.1.0.55920 Content Manager - Build 6.1.0.996 Update Version - SP1 Nachdem ich den Text in eine Überschriftenebene geändert habe, erhalte ich durch Drücken der Eingabetaste einen neuen "Generischen Container (div)" oder <div>. Ich würde einen Absatz erwarten, ähnlich wie Word es <p>standardmäßig tut .