2009-12-29 111 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()功能。