Firefox: Zeilenumbruch wird beim Bearbeiten innerhalb von Link hinzugefügt

  • Affected App
    WoltLab Suite Core

    Das folgende Problem tritt in Firefox, aber nicht in Chrome auf:

    Angenommen man schreibt einen Link, drückt zweimal Enter und schreibt dann Text. Dann passt nach dem Absenden alles.

    Jetzt ändern wir das Szenario wie folgt: Wir schreiben nur den Link, senden den Beitrag ab, bearbeiten den Beitrag, drücken nach dem Link zweimal Enter und schreiben einen Text. Nun sieht das Ergebnis so aus:

    Ich habe das Problem tatsächlich jeden Tag, dementsprechend kann man sich vorstellen, wie nervig das für mich ist. Vor allem da ich permanent auch Beiträge anderer Benutzer deswegen bearbeiten muss. Auch in der Beta-Installation der kommenden Version ist das Problem noch reproduzierbar.

    Das ist der Quellcode, der mit Chrome erzeugt wird:

    HTML
    <p><a href="https://www.qwant.com/">https://www.qwant.com/</a></p>
    <p><br></p>
    <p>Test</p>

    Das ist der Quellcode, der mit Firefox erzeugt wird:

    HTML
    <p><a href="https://www.qwant.com/">https://www.qwant.com/<br></a></p>
    <p><br></p>
    <p>Test</p>

    Man beachte im Fall von Firefox das zusätzliche <br> innerhalb des Links.

    Edited 2 times, last by Cadeyrn (November 10, 2019 at 11:21 AM).

  • Alexander Ebert November 26, 2019 at 4:12 PM

    Added the Label 5.2.0 Beta 4
  • Mit dem nächsten Update kommt eine Änderung mit der das überflüssige <br> bei Links entfernt wird. Der Code arbeitet aber sehr defensiv, da die Erkennung auf dem Prinzip "Dort sollte wahrscheinlich kein <br> stehen." arbeitet und daher nur eine Entfernung vorgenommen wird, wenn ein Irrtum praktisch ausgeschlossen ist.

    Dahinter steckt ein relativ alter Firefox-Bug, bei dem die Enter-Taste in einem Inline-Element zu einem überflüssigen <br> in der Ursprungszeile führt. Das lässt sich auch gut mit anderen Formatierungen reproduzieren, Fettdruck reicht dafür bereits aus. Bei Links wird es nur deshalb offensichtlich, weil externe Links mittels des CSS-Pseudo-Elementes ::after ein Icon zugewiesen bekommen. Dies steht naturgemäß nach dem <br> und erzeugt daher eine neue Zeile innerhalb des umgebenenen <p>.

  • Danke! Ich bin schon gespannt, wie gut die Fehlerbehebung dann in der Praxis funktioniert. :)

    Bezüglich des Firefox-Bugs, hast du da eine Bug-Nummer für mich? Dann kann ich mich da auf CC setzen. ;)

  • Bezüglich des Firefox-Bugs, hast du da eine Bug-Nummer für mich? Dann kann ich mich da auf CC setzen. ;)

    Den exakten finde ich leider nicht, ich war mir aber ziemlich sicher, denn auf meiner Watchlist gehabt zu haben. Teilweise sind die nicht korrekt dem Core/DOM:Editor zugewiesen, das macht es umso schwerer die zu finden.

    Prinzipiell treffen diese Issues zu:

    Die entsprechen alle ungefähr dem selben Grundproblem der überflüssigen <br> bei Zeilenumbrüchen mit Enter.

    Aus Erfahrung kann ich sagen, dass Inline-Elemente absolut fürchterlich sind, unabhängig von der Browser-Engine, da bekleckert sich wirklich keiner mit Ruhm. Ich würde mir echt wünschen, dass sich die Browser-Hersteller mal zusammensetzen und was komplett neues aus dem Boden stampfen, contenteditable ist so dermaßen vor die Wand gefahren…

    Der Bedarf an einem WYSIWYG-Editor ist omnipräsent und schaut man sich die üblichen Lösungen an, so besteht meistens ein sehr großer Teil nur aus Normalisierungen und der Reperatur des Unfugs, den der Browser verzapft. Das einzig gute daran ist, dass das meiste auch noch in 20 Jahren genauso kaputt sein wird und somit die Fixes auch dann noch greifen. It's something!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!