Ace 编辑器按回车键不添加换行符

Ace editor pressing enter key does not add a newline

在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');

我正在回答我自己的问题,这样遇到类似问题的人会节省一些时间。

如果您遇到这种情况,a user 是对的。事件按键事件被手动捕获,并在代码中的其他地方手动输入时停止了事件。

如果你需要调试这个你可以覆盖 preventDefault and/or stopPropagation 方法:

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

您可能想要过滤 this.type 事件类型以跳过某些事件。

您网页上的其他内容正在捕捉事件 在没有其他代码的页面上,您的示例有效

<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>