2014-11-16 111 views
3

我想知道是否有人可以为我提供一个解决方案,从Wordpress 4.0中的tinyMCE中删除键盘快捷键? 因为我使用的前端文本编辑器,我想禁用ALT + SHIFT + M(打开媒体库)和ALT + F(打开全屏幕和用户不能添加括号打开)如何删除tinyMCE 4中的键盘快捷键?

任何帮助将不胜感激

+0

有人请吗? –

回答

2

这里是一个完美的解决方案(original answer here),只需添加到您的的functions.php文件:

<?php 
    add_action('wp_tiny_mce_init', function() { 
?> 
    <script> 
     function wp_disable_shortcuts_tiny_mce_init(editor) { 
      editor.on('init', function() { 
        this.addShortcut('alt+ctrl+f', '', function() {}); //altgr is alt+ctrl 
        this.addShortcut('alt+ctrl+g', '', function() {}); //just in case... 
        this.addShortcut('alt+shift+m', '', function() {}); 

        //you could add a for loop to disable multiple shortcuts as in OP's answer 
        // var ctrls = [ 'a', 'b', 'c', 'd' ]; 
        // for(var i = 0; i < ctrls.length; i++){ 
        //  this.addShortcut('ctrl+' + ctrls[i], '', function() {}); 
        // } 
       }); 
      } 
     </script> 
<?php 
    }); 
    function wp_disable_shortcuts_tiny_mce_before_init($mceInit) { 
     $mceInit['setup'] = 'wp_disable_shortcuts_tiny_mce_init'; 
     return $mceInit; 
    } 
    add_filter('tiny_mce_before_init', 'wp_disable_shortcuts_tiny_mce_before_init'); 
?> 

,这里是所使用的功能和过滤器的简要说明。

该过滤器授予开发人员访问TinyMCE的设置阵列,

add_filter('tiny_mce_before_init', 'wp_disable_shortcuts_tiny_mce_before_init'); 

在那里,我们可以利用HOOK我们对TinyMCE的设置js函数如下:

function wp_disable_shortcuts_tiny_mce_before_init($mceInit) { 
    $mceInit['setup'] = 'wp_disable_shortcuts_tiny_mce_init'; 
    return $mceInit; 
} 

最后,这个动作,

add_action('wp_tiny_mce_init', function(){ ... }); 

加载tinymce.js后触发,但在任何TinyMCE编辑器实例之前被创建。在这里我们创建了我们的javascript函数,它将在init中禁用编辑器快捷方式,将其替换为无操作函数。

希望这会有所帮助。