Редактор Ace нажатие клавиши ввода не добавляет новую строку - PullRequest
0 голосов
/ 21 июня 2019

Новая строка не вставляется при нажатии клавиши ввода в поле редактора экземпляра редактора ace. Ничего не происходит.

Пример инициации:

let codeEditor = ace.edit('someElementId', {
    minLines: 6,
    maxLines: 20,
    showLineNumbers: false,
    readOnly: false,
    newLineMode: 'auto',
});
codeEditor.setTheme('ace/theme/chrome');
codeEditor.session.setMode('ace/mode/json');

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Что-то еще на вашей странице ловит событие На странице без другого кода ваш пример работает

<form>
    <div id="someElementId"></div>
</form>

<script src=https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.3/ace.js></script>
<script>
let codeEditor = ace.edit('someElementId', {
    minLines: 6,
    maxLines: 20,
    showLineNumbers: false,
    readOnly: false,
    newLineMode: 'auto',
});
codeEditor.setTheme('ace/theme/chrome');
codeEditor.session.setMode('ace/mode/json');
</script>
0 голосов
/ 21 июня 2019

Я отвечаю на свой вопрос, чтобы люди с подобной проблемой сэкономили время.

Если это произойдет с вами, a user был прав.Событие нажатия клавиши было перехвачено вручную и остановило событие при вводе вручную где-то еще в коде.

Если вам нужно отладить это, вы можете перезаписать методы protectDefault и / или stopPropagation:

let debugPreventDefault = Event.prototype.preventDefault;
Event.prototype.preventDefault = function() {
    console.log(this);
    debugger;
    debugPreventDefault.call(this);
};

Возможно, вы захотите отфильтровать типы событий this.type, чтобы пропустить определенные события.

...