Etherpad-lite: Der Cursor springt zum Ende der vorherigen Zeile in Firefox zurĂŒck

Erstellt am 9. Nov. 2019  Â·  19Kommentare  Â·  Quelle: ether/etherpad-lite

Danke fĂŒr Etherpad. Es ist ein sehr cooles Projekt.

Dieses Problem ist # 3087 sehr Ă€hnlich. Es erscheint in Firefox 68 auf Debian Buster unter https://beta.etherpad.org . Dies geschieht auch mit der neuesten Version von FF und Trisquel 8, einer Abzweigung von Ubuntu Xenial. Ich habe dieses Problem mit Firefox und Etherpad schon lange (vielleicht ein Jahr) bemerkt und hĂ€tte es frĂŒher melden sollen. Ich habe es nicht erwĂ€hnt, da ich dachte, es sei ein vorĂŒbergehender Fehler in Etherpads Hauptzweig. Es erscheint nicht in Chrom auf Debian Buster.

Wenn Sie eine lange Textzeile (mit oder ohne Leerzeichen) schreiben, die in eine neue Zeile umgebrochen wird, tritt das seltsame Verhalten auf. Platzieren Sie den Cursor am Anfang einer leeren Zeile unter der oben eingegebenen umbrochenen Zeile. DrĂŒcken Sie dann den AufwĂ€rtspfeil, damit er zum Anfang des umbrochenen Teils der Zeile (in der zweiten Zeile des umgebrochenen Textes) fĂŒhrt. Der Cursor springt sofort zum Ende der vorherigen Zeile des umgebrochenen Textes.

Wenn sich der Cursor zum Ende der vorherigen Zeile bewegt hat, wird er durch einmaliges DrĂŒcken des AbwĂ€rts- oder Rechtspfeils zum Anfang der nĂ€chsten Zeile und dann zurĂŒck zum Ende der vorherigen Zeile verschoben.

Das erwartete Verhalten besteht darin, dass der Cursor beim Suchen am Zeilenanfang bleibt.

Dies macht die Cursornavigation etwas schwierig, wenn Sie die unteren Zeilen des umbrochenen Textes bearbeiten möchten. Dies liegt daran, dass Sie möglicherweise in einer leeren Zeile unterhalb des umbrochenen Texts beginnen. DrĂŒcken Sie daher normalerweise den AufwĂ€rtspfeil, bevor Sie den Rechtspfeil drĂŒcken, um horizontal unten oder in der Mitte zu suchen. Wenn Sie den Cursor vom oberen Rand des Dokuments nach unten bewegen möchten, mĂŒssen Sie den AbwĂ€rtspfeil gedrĂŒckt halten, damit er ĂŒber die umbrochene Textzeile hinausgeht.

Vielen Dank fĂŒr die Arbeit an Etherpad. :)

Bug UX editor

Alle 19 Kommentare

Ich sollte beachten, dass der offensichtlichste Unterschied zwischen diesem Problem und # 3087 darin besteht, dass der Cursor in die entgegengesetzte Richtung springt.

Gleiches Problem unter Fedora 31 / Firefox 72.0.2.

Ich fĂŒhre Etherpad auf Docker aus und bekomme das Problem sowohl auf der neuesten als auch auf der Version 1.8.0.

Gelöschte Nachricht: # 3728 und dieses Problem sind nicht genau gleich, auch wenn sie wahrscheinlich zusammenhÀngen.

Hallo,

Ich musste mehrere Instanzen von Etherpad installieren (letzte Version, nicht auf Docker), aber niemand kann die Pads mit diesem Fehler verwenden.

Eine Idee, welche Version / welches Commit dieses Problem nicht hat?

Das gleiche Problem hier Docker Container Version 1.8.0 mit Chromium 80.0.3987.122 und Firefox 74, versuchte ein Downgrade auf Container Version 1.7.5, aber das gleiche Problem.

3728 ist ein anderes Problem, kann aber verwandt sein. Dieser gilt nur fĂŒr Text, der mehrere Zeilen umschließt, wenn der Cursor an den Anfang einer der umbrochenen Zeilen sucht.

Ich habe Etherpad bei diesem Commit getestet: https://github.com/ether/etherpad-lite/commit/467fc11b723723275f1ebd0fed556a0525ea5f0b

Und in FF (neues Profil) kein Problem.
Kam zurĂŒck zum letzten Commit (https://github.com/ether/etherpad-lite/commit/826122932380e59c47ce963252cfe16bd46dbc0c), neues FF-Profil, die Probleme traten auf.

BestÀtigt im Entwicklungszweig (derzeit 826122932380) auf Firefox 74 und Chromium 80 .

Wenn der Cursor springt, gibt es Fehler in der js-Konsole.

  1. Fehler in der JS-Konsole in Chromium 80 (nicht wirklich nĂŒtzlich):

    VM212:5 Uncaught TypeError: Cannot read property 'parentNode' of null
       at ae (eval at v (ciao:2), <anonymous>:5:13128)
       at Q (eval at v (ciao:2), <anonymous>:5:10395)
       at eval (eval at v (ciao:2), <anonymous>:6:15715)
       at d (eval at v (ciao:2), <anonymous>:5:2437)
       at f (eval at v (ciao:2), <anonymous>:5:2918)
       at eval (eval at v (ciao:2), <anonymous>:6:15656)
       at r (eval at v (ciao:2), <anonymous>:5:5987)
    
  2. Fehler Nummer eins in der JS-Konsole in Firefox 74 :

    TypeError: n is nullciao line 24 > scriptElement line 9 > Function:2033:15
       getLineAndCharForPoint http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:2033
       incorporateUserChanges http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1721
       idleWorkTimer http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1213
       inCallStack http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:492
       inCallStackIfNecessary http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:561
       idleWorkTimer http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1198
       callback http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1149
    

    Welches ist an dieser Stelle in dieser Datei: https://github.com/ether/etherpad-lite/blob/826122932380e59c47ce963252cfe16bd46dbc0c/src/static/js/ace2_inner.js#L2031

  3. Fehler Nummer zwei in der JS-Konsole in Firefox 74 :

Error: Failed assertion: mismatched composition of two changesets ciao line 24 > scriptElement line 9 > Function:5972:11
    error http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:5972
    assert http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:5986
    compose http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:7254
    _mergeChangesets http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:9274
    reportEvent http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:9308
    submitOldEvent http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:450
    inCallStack http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:520
    inCallStackIfNecessary http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:561
    idleWorkTimer http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1198
    callback http://localhost:9001/p/ciao line 24 > scriptElement line 9 > Function:1149

Dies ergibt sich aus einer Catch-All-Fehlerfunktion hier: https://github.com/ether/etherpad-lite/blob/826122932380e59c47ce963252cfe16bd46dbc0c/src/static/js/Changeset.js#L41

Das gleiche Problem hier Docker Container Version 1.8.0 mit Chromium 80.0.3987.122 und Firefox 74, versuchte ein Downgrade auf Container Version 1.7.5, aber das gleiche Problem.

Ok mein schlechtes es funktioniert gut auf 1.8.0 und 1.7.5. Durch das Löschen der Caches meines Browsers wurde das Problem behoben. Das Problem ist also nur am: spÀtestens vorhanden.

Ich kann die Ergebnisse von @quenenni bestÀtigen: Das

Ich werde eine PR vorbereiten, die diese beiden Commits rĂŒckgĂ€ngig macht. Vor dem ZusammenfĂŒhren möchte ich die Zusammenarbeit aller beim Testen, damit wir alle verbleibenden Probleme erkennen.

@jeder in diesem Thread:

Wenn möglich auf einer sauberen Instanz und mit leerem Browser-Cache testen.

Ich habe jedenfalls Zweifel: Das Thema, das wir ab November 2019 kommentieren, und die Änderungen, die rĂŒckgĂ€ngig gemacht werden wĂŒrden, wurden kĂŒrzlich (15. MĂ€rz 2020) akzeptiert.

Ich wĂ€re nicht ĂŒberrascht, einige verbleibende Probleme zu sehen.

3729 löste das Problem fĂŒr mich nach dem Bereinigen des Browser-Cache.

Danke @rottaran. Meine Kopie funktioniert auch gut.

Ich bin jedoch immer noch verwirrt darĂŒber, dass @sudoman dies im November 2019 gemeldet hat: Wie kann eine spĂ€tere Änderung sein Problem beheben? Es muss noch etwas los sein.

@muxator In dieser Ausgabe ging es ursprĂŒnglich um etwas anderes. Die Leute fingen an, sich zu einem anderen, aber verwandten Thema zu Ă€ußern.

Ja @sudoman , das stimmt. Das andere Problem ist jetzt behoben, sodass wir zu dem hier beschriebenen Problem zurĂŒckkehren können.

Ich kann dieses Problem nicht reproduzieren. Hast du es noch?

Mein Setup:

  • Etherpad, aktuelle Entwicklung 840b4a098847, saubere Installation ohne Plugins
  • Firefox 74.0 , Cache bereinigen

Schließen Sie dies, wie es fixiert scheint.
FĂŒhlen Sie sich frei, es erneut zu öffnen, wenn das Problem weiterhin besteht.

Vielen Dank.

Ich habe festgestellt, dass dieses Problem sogar unter Firefox 78 mit einer neuen Entwicklungsinstanz von Etherpad-Lite auftritt. Wenn Sie nach der zweiten Textzeile suchen, die mehr als eine Zeile umfasst, wird dieser Fehler zunĂ€chst nicht angezeigt. Sobald Sie eine Pfeiltaste drĂŒcken, um nach oben oder unten zu gehen, wirkt sich dieser Fehler auf diesen Textabschnitt aus und wirkt sich auch weiterhin auf diesen Absatz aus.

In den Entwicklertools von Firefox habe ich festgestellt, dass der Text im span-Element in einer einzelnen Zeile ausgedrĂŒckt wird, bevor der Fehler auftritt. Sobald Sie den Cursor ein zweites Mal bewegen, wird der Text im DOM in mehrere Zeilen aufgeteilt. Chromium hat auch dieses Verhalten beim Aufteilen von Linien, verhĂ€lt sich in dieser Situation jedoch nicht fehlerhaft.

Ich vermute, dass dies ein Firefox-Fehler sein könnte. Was denkst du darĂŒber? Sollten wir uns stromaufwĂ€rts melden? Wie schwierig wĂ€re es auch, dies zu umgehen, indem beim Bewegen des Cursors keine Linien geteilt werden? Vielen Dank! :)

Ich sollte beachten, dass ich mit der Version 1.8.4 von Etherpad Lite getestet habe. Könnten Sie diese Ausgabe bitte erneut öffnen? Vielen Dank!

Wir haben ein separates Problem fĂŒr das Verhalten, das Sie erleben. Bitte beziehen Sie sich darauf

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen