Javascript富文本编辑器,单击按钮后内容可编辑区域失去焦点

标签 javascript html contenteditable

我有一个简单的 javascript 富文本编辑器,仅包含具有以下 onclick 的粗体按钮:

  document.execCommand('bold', false)

和简单的 html...

<div contenteditable="true">

我的问题是,当我点击粗体按钮时,文本区域失去了焦点,有什么解决办法吗?

最佳答案

好吧,焦点移到了按钮上,因此您需要取消单击操作,这样焦点才不会丢失在内容可编辑元素中。

document.querySelector(".actions").addEventListener("mousedown", function (e) {
  var action = e.target.dataset.action;
  if (action) {
    document.execCommand(action, false)
    //prevent button from actually getting focused
    e.preventDefault();
  }
})
[contenteditable] {
  width: 300px;
  height: 300px;
  border: 1px solid black;
}
<div class="actions">
  <button data-action="bold">bold</button>
  <button data-action="italic">italic</button>
</div>
<div contenteditable="true"></div>

关于Javascript富文本编辑器,单击按钮后内容可编辑区域失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057207/

相关文章:

javascript - 如何使用类似的 prop 通过 API 返回的 JSON 进行过滤?

javascript ken ken 拼图生成器

javascript - 谷歌地图绘制两点之间的路线

javascript - 使用函数和参数迭代包含对象的数组

html - 如何在标题部分重叠图像?

javascript - 显示隐藏的 div 元素的 jquery 工具提示?

html - ContentEditable DIV 中不可编辑跨度的选择和删除问题

jquery - 在线修改源码

javascript - 如何删除 ContentEditable 中的 H1 格式(所见即所得)

html - CSS 禁用水平滚动在本地服务器上工作,但不在域上