Javascript 按“执行新行更改”;输入“;钥匙

Javascript 按“执行新行更改”;输入“;钥匙,javascript,angularjs,wysiwyg,contenteditable,execcommand,Javascript,Angularjs,Wysiwyg,Contenteditable,Execcommand,我使用的是contenteditable,因为某些业务场景,我需要跟踪换行符。为了解决这个问题,我执行了以下步骤: 在keydown事件中,我停止了“回车”键事件(keyCode=13) 在“回车”的keyup事件中,我以$window.document.execCommand('insertHTML',true',')的形式发出execCommand 除非我在队伍的尽头,否则它就像一个符咒 问题 当光标位于行尾时,首先按enter键插入,但即使插入了html,光标的换行操作也不会发生 当我再

我使用的是
contenteditable
,因为某些业务场景,我需要跟踪换行符

。为了解决这个问题,我执行了以下步骤:

  • keydown
    事件中,我停止了“回车”键事件(keyCode=13)
  • 在“回车”的
    keyup
    事件中,我以
    $window.document.execCommand('insertHTML',true',
    ')的形式发出
    execCommand
  • 除非我在队伍的尽头,否则它就像一个符咒

    问题
    • 当光标位于行尾时,首先按enter键插入

      ,但即使插入了
      html
      ,光标的换行操作也不会发生
    • 当我再次按下回车键时,什么也没有发生。未插入
      innerHTML
    。请检查控制台以查看html

    如果光标前有任何字符,它就可以完美地工作


    我希望我已经把我的问题解释清楚了。请提供任何建议

    尽管这似乎是一种解决办法,但您可以使用

    $window.document.execCommand('insertHTML',true,'<br class="new">&nbsp;');
    
    $window.document.execCommand('insertHTML',true',
    );
    它会为你的目的添加一个空格,我认为可以忽略它