如何添加TinyMCE键盘快捷键

时间:2011-11-10 作者:supertrue

关于如何向TinyMC添加新的键盘快捷键,我能找到的最全面的文档位于以下页面:http://www.lifeinsuranceonmyterms.com/other/custom-keyboard-shortcuts-for-tinymce-how-to

它包括将此代码添加到主TinyMCE源文件tiny\\u mce\\u src中。js(然后重新压缩):

t.addShortcut([keyboard command], [shortcut name], [command name]);
有没有一种方法可以添加一个快捷方式而不破坏core/TinyMCE?

更新:具体来说,我想添加快捷方式,将h2/h3/h4或其他TinyMCE按钮操作应用于TinyMCE中的选定文本。

2 个回复
SO网友:Bainternet

上次我添加keybord快捷方式时,它使用的是jQuery。看看jquery.hotkeys 使用简单的一行代码启用键盘快捷键的插件:

$(document).bind(\'keydown\', \'ctrl+a\', fn);

update

如果要检查TinyMCE编辑器是否处于活动状态,并且它是否具有选定的文本,则需要以下功能:

function isTinyMCEactive(){ //check if editor is active
    is_tinyMCE_active = false;
    if (typeof(tinyMCE) != "undefined") {
        if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) {
            is_tinyMCE_active = true;
        }
    }
    return is_tinyMCE_active;
}

function tinyMCEhotkeys(tag){
    if (isTinyMCEactive()){
        var selected_content = \'\';
        selected_content = tinyMCE.activeEditor.selection.getContent();
        if (selected_content != \'\' || selected_content != null){ //check if editor has selection
            tinyMCE.activeEditor.execCommand("mceInsertContent", 0, \'<\' + tag + \'>\' + selected_content + \'</\' + tag + \'>\');
        }
    }
}
现在,一旦具备了这些功能,剩下的就很容易了:

$(document).bind(\'keydown\', \'ctrl+1\', tinyMCEhotkeys(\'h1\'));
$(document).bind(\'keydown\', \'ctrl+2\', tinyMCEhotkeys(\'h2\'));
$(document).bind(\'keydown\', \'ctrl+3\', tinyMCEhotkeys(\'h3\'));
$(document).bind(\'keydown\', \'ctrl+4\', tinyMCEhotkeys(\'h4\'));

SO网友:janw

我有这个问题。并找到了答案。希望对(某人)仍有帮助#Threadnecro

在里面functions.php 我添加了一个tinyMCE插件:

function mce_button_js( $plugin_array ) {
  $plugin_array[\'notes\'] = get_template_directory_uri() . \'/js/tinymce.js\';
  return $plugin_array;
}
add_filter( \'mce_external_plugins\', \'mce_button_js\' );
文件/js/tinymce。js有:

(function() {
  tinymce.create(\'tinymce.plugins.Notes\', {
    init: function(ed, url) {
      ed.addButton(\'code\', {
        title: \'Code\',
        cmd: \'code\'
      });

      // here I add the shortcut.
      ed.addShortcut(\'ctrl+k\', \'description\', \'code\');
      ed.addCommand(\'code\', function() {
        var selected_text = ed.selection.getContent(),
          $node = jQuery(ed.selection.getStart()),
          return_text = \'\';

        if (selected_text !== "") {
          return_text = \'<code>\' + selected_text + \'</code>\';
        }
        ed.execCommand(\'mceInsertContent\', 0, return_text);
      });
    }
  });
  // Register plugin
  tinymce.PluginManager.add(\'notes\', tinymce.plugins.Notes);
})();
这会将代码按钮添加到wysiwyg 编辑it地图ctrl+k 作为该操作的热键。

来源

结束