试图在jQuery版本的TinyMCE编辑器中找到禁用单个键盘快捷键的位置.目前允许的快捷方式列表是:
目前正在寻找禁用所有快捷方式,但撤消,重做和加粗.由于其不需要的格式化,其余部分在我们的实现中是不确定的.
我似乎无法找到启用这些快捷方式的代码.你能指出在哪里找到这个代码.
即使这有一个公认的答案,我也会与tinymce4分享我的用法.您只需添加editor.addShortcut('ctrl+u', "", "")
到init
方法中的事件方法,该setup
方法将覆盖添加的快捷方式
例:
tinyMCE.init({
// Your options here
setup: function(editor) {
editor.on("init", function(){
editor.addShortcut("ctrl+u", "", "");
});
}
})
Run Code Online (Sandbox Code Playgroud)
您可以ctrl+u
在上面的代码中替换您要禁用的任何快捷方式.
禁用 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(){ };
}
}
}
Run Code Online (Sandbox Code Playgroud)
背景
它似乎是围绕(来自完整开发下载)行2294
定义的。jscripts/tiny_mce/classes/Editor.js
此外,它们存储在变量的数组中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');
}
Run Code Online (Sandbox Code Playgroud)
但如果你环顾四周,你就会发现他们是如何实现这一点的。
另外,研究一下Editor.addShortcut
方法。您也许能够覆盖默认行为。