Codemirror 鼠标弹起事件

Codemirror mouseup event

与 mousedown 相比,mouseup 事件似乎不是由 CodeMirror 实例触发的(其文档不包含 mouseup 事件)。

我需要对 mouseup 事件作出反应以将焦点移动到另一个 Codemirror 实例。

情况如下:一个编辑器(例如,editor1)是 "read-only",但必须允许选择(并复制到剪贴板)。如果只执行了对 editor1 的单击,则必须将焦点移动到另一个实例(例如,editor2)。如果在 editor1 上进行了选择,则焦点不得移动到 editor2。

我可以对 mousedown 做出反应(如下例所示),但不能对 mouseup 做出反应:

<script>

var editor1 = CodeMirror(document.body, {
  readOnly : true,
  cursorBlinkRate : -1
});

var editor2 = CodeMirror(document.body);

editor1.on("mousedown", function (cm, ev) {
  ev.codemirrorIgnore = true;
  ev.preventDefault();
  editor2.focus();
});

</script>

您不应该为该用例使用 codemirros 鼠标事件。相反,我建议使用 vanilla mouse events 然后检查选择是否为空,如果是则移动焦点

演示:https://codepen.io/quic5/pen/EGEREr