试图找到在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):
for(var i in tinyMCE.editors){ var editor = tinyMCE.editors[i]; for(var s in editor.shortcuts){ var shortcut = editor.shortcuts[s]; // Remove all shortcuts except Bold (66),Redo (89),Undo (90) if(!(s == "ctrl,66" || s == "ctrl,89" || s == "ctrl,90")){ // This completely removes the shortcuts delete editor.shortcuts[s]; // You could use this instead,which just disables it,but still keeps // browser functionality (like CMD+U = show source in FF Mac) from interrupting the flow // shortcut.func = function(){ }; } } }
背景
它似乎是围绕jscripts / tiny_mce / classes / Editor.js的2294行定义的(从完整的开发下载).
而且,它们存储在Editor.shortcuts变量中的数组中.他们的键是使用特殊的字符设置键码,如下所示:ctrl,90.
但是从我可以看出,似乎很多浏览器实现了自己的ctrl b,ctrl i和ctrl u版本,只有Gecko浏览器没有:
// Add default shortcuts for gecko if (isGecko) { t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold'); t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic'); t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline'); }
但是如果你环顾四周,你可以看看它们是如何启用的.
另外,查看Editor.addShortcut
方法.您可能可以覆盖默认行为.