Спасибо за Etherpad. Это очень крутой проект.
Эта проблема очень похожа на # 3087. Он появляется в Firefox 68 в Debian Buster по адресу https://beta.etherpad.org . Это также происходит с последней версией FF и Trisquel 8, форком Ubuntu Xenial. Я замечал эту проблему с Firefox и Etherpad в течение долгого времени (возможно, год), и должен был сообщить об этом раньше. Я не поднимал этот вопрос, так как думал, что это временная ошибка в основной ветке Etherpad. Его нет в Chromium на Debian Buster.
Когда вы пишете длинную строку текста (с пробелами или без них), которая переносится на новую строку, появляется странное поведение. Поместите курсор в начало пустой строки под введенной выше строкой с переносом. Затем нажмите стрелку вверх, чтобы она перешла в начало обернутой части строки (во второй строке обернутого текста). Курсор немедленно переходит в конец предыдущей строки с переносом текста.
Кроме того, когда курсор переместился в конец предыдущей строки, однократное нажатие стрелки вниз или вправо переместит его в начало следующей строки, а затем обратно в конец предыдущей.
Ожидаемое поведение - курсор остается в начале строки при поиске там.
Это затрудняет навигацию курсора, если вы хотите редактировать нижние строки обернутого текста. Это связано с тем, что вы можете начать с пустой строки под обернутым текстом, поэтому обычно вы нажимаете стрелку вверх, прежде чем нажимать стрелку вправо, чтобы искать по горизонтали внизу или по средней строке. Если вы хотите переместить курсор из верхней части документа в нижнюю, вам нужно удерживать стрелку вниз, чтобы она прошла за обернутую строку текста.
Спасибо за работу над Etherpad. :)
Следует отметить, что наиболее очевидное различие между этой проблемой и №3087 заключается в том, что курсор прыгает в противоположном направлении.
Та же проблема в Fedora 31 / Firefox 72.0.2.
Я запускаю Etherpad на Docker, проблема возникает как в последней версии, так и в версии 1.8.0.
Удалено сообщение: # 3728, и эта проблема не совсем такая же, даже если, вероятно, связана.
Привет,
Мне пришлось установить несколько экземпляров etherpad (последняя версия, не на докере), но никто не может использовать пады с этой ошибкой.
Представление о том, какая версия / коммит не имеет этой проблемы?
Та же проблема здесь версии 1.8.0 контейнера докеров с Chromium 80.0.3987.122 и Firefox 74, попытался перейти на версию контейнера 1.7.5, но та же проблема.
Я тестировал Etherpad на этом коммите: https://github.com/ether/etherpad-lite/commit/467fc11b723723275f1ebd0fed556a0525ea5f0b
А в FF (новый профиль) проблем нет.
Вернулся к последней фиксации (https://github.com/ether/etherpad-lite/commit/826122932380e59c47ce963252cfe16bd46dbc0c), новый профиль FF, возникли проблемы.
Подтверждено в ветке разработки (в настоящее время 826122932380) как в Firefox 74, так и в Chromium 80 .
Когда курсор прыгает, в консоли js появляются ошибки.
Ошибка в консоли JS в Chromium 80 (не особо полезно):
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)
Ошибка номер один в консоли JS в 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
Что находится на данный момент в этом файле: https://github.com/ether/etherpad-lite/blob/826122932380e59c47ce963252cfe16bd46dbc0c/src/static/js/ace2_inner.js#L2031
Ошибка номер два в консоли JS в 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
Это происходит из-за функции обнаружения всех ошибок здесь: https://github.com/ether/etherpad-lite/blob/826122932380e59c47ce963252cfe16bd46dbc0c/src/static/js/Changeset.js#L41
Та же проблема здесь версии 1.8.0 контейнера докеров с Chromium 80.0.3987.122 и Firefox 74, попытался перейти на версию контейнера 1.7.5, но та же проблема.
Хорошо, плохо, он хорошо работает на 1.8.0 и 1.7.5. Очистка кешей браузеров устранила проблему. Таким образом, проблема присутствует только на: latest.
Я могу подтвердить выводы @quenenni : возврат к 467fc11 решает проблему и для меня. Если да, то это вызвано втягиванием # 3622.
Я собираюсь подготовить PR, который отменяет эти две фиксации. _Перед объединением этого я хотел бы, чтобы все вместе тестировали его, чтобы мы могли выявить все оставшиеся проблемы.
@ все в этой теме: не могли бы вы помочь и протестировать № 3729, сообщив о своих выводах?
Если возможно, протестируйте на чистом экземпляре и с пустым кешем браузера.
Во всяком случае, у меня есть сомнения: проблема, которую мы комментируем, если с ноября 2019 года, и изменения, которые будут отменены, были приняты недавно (15 марта 2020 года).
Я не удивлюсь, увидев некоторые оставшиеся проблемы.
Спасибо @rottaran. Моя копия тоже работает хорошо.
Однако меня все еще озадачивает тот факт, что @sudoman сообщил об этом в ноябре 2019 года: как отменить более позднее изменение, чтобы исправить его проблему? Должно быть что-то еще.
@muxator изначально эта проблема была о другом. люди начали комментировать это по другому, но связанному с этим вопросу.
Ага, @sudoman , верно. Другая проблема теперь исправлена, поэтому мы можем вернуться к описанной здесь проблеме.
Я не могу воспроизвести эту проблему. Он у тебя еще есть?
Моя установка:
Закрытие этого, как кажется, исправлено.
Не стесняйтесь снова открыть его, если проблема не исчезнет.
Спасибо.
Я обнаружил, что эта проблема возникает даже в Firefox 78 со свежим экземпляром etherpad-lite. Когда вы переходите ко второй строке текста, которая охватывает более одной строки, эта ошибка сначала не появляется. Как только вы нажимаете клавишу со стрелкой для перехода вверх или вниз, эта ошибка начинает влиять на этот абзац текста и продолжает влиять на этот абзац.
В инструментах разработчика Firefox я заметил, что текст в элементе span выражается в одной строке до появления ошибки. После того, как вы переместите курсор во второй раз, текст разделится на несколько строк в DOM. Chromium также имеет такое поведение разделения строк, но не ведет себя ошибочно в этой ситуации.
Я предполагаю, что это может быть ошибка Firefox. Что ты об этом думаешь? Должны ли мы сообщать о восходящем потоке? Кроме того, насколько сложно было бы обойти это, не разделяя строки при перемещении курсора? Спасибо! :)
Следует отметить, что я тестировал Etherpad Lite версии 1.8.4
. Не могли бы вы повторно открыть этот вопрос? Спасибо!
У нас есть отдельная проблема, связанная с вашим поведением. Пожалуйста, обратитесь к этому