jquery – 限制TinyMCE编辑器中的键盘快捷键

前端之家收集整理的这篇文章主要介绍了jquery – 限制TinyMCE编辑器中的键盘快捷键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
试图找到在jQuery版本的TinyMCE编辑器中禁用单个键盘快捷键的位置.目前,允许的快捷方式列表是:

> ctrl z撤消
> ctrl y重做
> ctrl b Bold
> ctrl我的斜体
> ctrl u下划线
> ctrl 1-6 h1-h6
> ctrl 7 p
> ctrl 8 div
> ctrl 9地址

目前正在禁用所有快捷键,但是撤消,重做和粗体.由于它是不需要的格式化,其余的在我们的实现中是不统一的.

我似乎找不到启用这些快捷方式的代码.你能指出哪里找到这个代码.

解决方法

在Firefox中禁用测试

这应该帮助你开始.您可能需要为ctrl u和ctrl i添加空的快捷方式才能在其他浏览器中禁用它,但是此代码已经过测试以禁用Firefox中的操作.只是运行在初始化的tinyMCE已经运行(我测试我的在Firebug):

  1. for(var i in tinyMCE.editors){
  2. var editor = tinyMCE.editors[i];
  3. for(var s in editor.shortcuts){
  4. var shortcut = editor.shortcuts[s];
  5. // Remove all shortcuts except Bold (66),Redo (89),Undo (90)
  6. if(!(s == "ctrl,66" || s == "ctrl,89" || s == "ctrl,90")){
  7. // This completely removes the shortcuts
  8. delete editor.shortcuts[s];
  9.  
  10. // You could use this instead,which just disables it,but still keeps
  11. // browser functionality (like CMD+U = show source in FF Mac) from interrupting the flow
  12. // shortcut.func = function(){ };
  13. }
  14. }
  15. }

背景

它似乎是围绕jscripts / tiny_mce / classes / Editor.js的2294行定义的(从完整的开发下载).

而且,它们存储在Editor.shortcuts变量中的数组中.他们的键是使用特殊的字符设置键码,如下所示:ctrl,90.

但是从我可以看出,似乎很多浏览器实现了自己的ctrl b,ctrl i和ctrl u版本,只有Gecko浏览器没有:

  1. // Add default shortcuts for gecko
  2. if (isGecko) {
  3. t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');
  4. t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');
  5. t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');
  6. }

但是如果你环顾四周,你可以看看它们是如何启用的.

另外,查看Editor.addShortcut方法.您可能可以覆盖默认行为.

猜你在找的jQuery相关文章