2009-12-29 114 views
2

我有我的网站的文本编辑器,我希望用户能够使用键盘快捷键来保存,就像他们在Microsoft Word中:键盘快捷键JQUERY - 命令+ S,控制+ S

  • 对于Mac:Cmd的 + 小号
  • 对于PC:按Ctrl +小号

在jQuery中完成此操作的最佳方法是什么?此外,这将用于保存在使用iFrame的CKEditor中的内容,不知道这是否是一个问题。

+0

这可能会有所帮助:http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.keystrokeHandler.html 类CKEDITOR.keystrokeHandler – AnApprentice 2009-12-29 23:51:37

回答

2

您是否知道CKEditor有built in hotkey functionality

实现起来非常简单:您在配置数组中设置了一个数组keystrokes;从上面的链接中获取示例数组;查看“S”的按键;并通过它的条目和相应的CKEditor命令修改数组。我现在无法测试,但这是应该是的样子。您可能需要查找适合您要执行的“保存”操作的命令。

... your config array ..... 

CKEDITOR.config.keystrokes = 
[ 
    [ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ], 
    [ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ], 

    [ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ], 

    [ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ], 
    [ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ], 
    [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ], 

    [ CKEDITOR.CTRL + 76 /*L*/, 'link' ], 

    [ CKEDITOR.CTRL + 66 /*B*/, 'bold' ], 
    [ CKEDITOR.CTRL + 73 /*I*/, 'italic' ], 
    [ CKEDITOR.CTRL + 85 /*U*/, 'underline' ], 

    [ CKEDITOR.CTRL + 83 /*S*/, 'save' ], 

    [ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ] 
]; 
+0

是的,但没有就如何实现它的文档? – AnApprentice 2009-12-30 00:58:43

+0

请参阅我编辑的答案。 – 2009-12-30 11:58:46

+3

对于mac的COMMAND键呢? – Shamoon 2011-04-29 14:19:50

0

在Mac上,捕捉CMD-S,分配事件处理程序,以这样的编者:

CKEDITOR.instances['editor1'].on('key', function (evt) { 
    console.log(evt.data.keyCode) 
    //cmd-s - save 
    if (evt.data.keyCode == 1114195) { 
     evt.cancel(); 
     save(); 
    }  
}); 

在我的例子,我打电话给我的save()功能。