在 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 方法。您也许可以覆盖默认行为。