Ace编辑器按Enter键不会添加换行符

时间:2019-06-21 08:04:53

标签: javascript newline ace-editor enter carriage-return

在ace编辑器实例的编辑器字段中按Enter键时,不会插入换行符。什么都没发生。

示例启动:

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 :(得分:0)

我在回答自己的问题,因此遇到类似问题的人可以节省一些时间。

如果您遇到这种情况,a user是正确的。手动捕获了事件keypress事件,并在代码中的其他位置手动输入时停止了该事件。

如果需要调试,可以覆盖preventDefault和/或stopPropagation方法:

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

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

答案 1 :(得分:0)

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

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