RuntimeInReadMode.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //根据按键控制状态机的跳转
  2. MWF.xApplication.MinderEditor.JumpingInReadMode = function( editor ) {
  3. /**
  4. * @Desc: 下方使用receiver.enable()和receiver.disable()通过
  5. * 修改div contenteditable属性的hack来解决开启热核后依然无法屏蔽浏览器输入的bug;
  6. * 特别: win下FF对于此种情况必须要先blur在focus才能解决,但是由于这样做会导致用户
  7. * 输入法状态丢失,因此对FF暂不做处理
  8. * @Editor: Naixor
  9. * @Date: 2015.09.14
  10. */
  11. var fsm = editor.fsm;
  12. var receiver = editor.receiver;
  13. var container = editor.contentNode;
  14. // normal -> *
  15. receiver.listen('normal', function(e) {
  16. //console.log( "receiver.listen('normal'" );
  17. // 为了防止处理进入edit模式而丢失处理的首字母,此时receiver必须为enable
  18. receiver.enable();
  19. /**
  20. * check
  21. * @editor Naixor
  22. * @Date 2015-12-2
  23. */
  24. switch (e.type) {
  25. case 'keydown': {
  26. // normal -> normal shortcut
  27. fsm.jump('normal', 'shortcut-handle', e);
  28. break;
  29. }
  30. case 'keyup': {
  31. break;
  32. }
  33. default: {}
  34. }
  35. });
  36. container.addEventListener('contextmenu', function(e) {
  37. e.preventDefault();
  38. });
  39. };