防止文本在 contenteditable 元素中突出显示时被删除

Prevent text from being erased when it is highlighted in contenteditable element

在一个 contenteditable h1 标签中,我试图在突出显示文本时触发一个事件,并且您按下回车键时没有删除文本并插入新行。

我正在尝试通过以下 javascript 实现此目的:

document.bind('keyup', function(ev) {
  if(ev.keyCode == 13) {
    //do something instead of erasing text
    ev.preventDefault();
  }
}

但是突出显示的文本似乎仍然有焦点,当我按 enter 时删除并插入一个新行。

有什么方法可以防止文本高亮时出现这种情况?

keyup 事件来不及了。改为使用 keydown 事件。此外,document.bind 不是正确的语法,会引发错误。您需要 addEventListener() 而不是:

document.addEventListener('keydown', function(ev) {
  if(ev.keyCode == 13) {
    //do something instead of erasing text
    ev.preventDefault();
  }
}, false);