防止文本在内容可编辑元素中突出显示时被删除

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

本文关键字:显示 删除 元素 编辑 文本      更新时间:2023-09-26

在内容可编辑的h1标签中,我试图在突出显示文本时触发事件,并且您按 Enter 键而不擦除文本并插入新行。

我正在尝试使用以下 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);