你这样修改也可以,但是还有两种情况需要考虑:
ctrl + a 全选
ctrl + z 回退(回退可能会导致内容被选中)

我想下面这个代码可以考虑一下,不去判断按键,但是对toggle执行的频率进行限制.虽然性能上会比你的稍差一些
```
var toggle = function() {
  var range = that._sel;
  if(!range.isCollapsed) {
    //show menu
    that._range = range.getRangeAt(0);
    that.menu().highlight();
  } else {
    //hide menu
    setTimeout(function() {
      that._menu.style.display = 'none';
    }, 0);
  }
};

// toggle toolbar on mouse select
editor.addEventListener('mouseup', function() {
  utils.shift('toggle_menu', toggle, 200);
});

// toggle toolbar on key select
editor.addEventListener('keyup', function() {
  utils.shift('toggle_menu', toggle, 200);
});
```