【问题标题】:Ace editor pressing enter key does not add a newlineAce 编辑器按回车键不添加换行符
【发布时间】:2019-11-04 01:25:15
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您需要对此进行调试,您可以覆盖 preventDefault 和/或 stopPropagation 方法:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 好电话,我会调查这个(我怎么没想到这个?)。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多