Javascript 如何通过快捷方式增加和减少字体大小?(tinymce)

Javascript 如何通过快捷方式增加和减少字体大小?(tinymce),javascript,html,tinymce,font-size,Javascript,Html,Tinymce,Font Size,我想增加和减少fontsize,就像在microsoft word中一样。 我需要一个增加的快捷方式和一个减少的快捷方式。 目前我有: tinymce.PluginManager.add('ds_fontsize', function (editor, url) { editor.addMenuItem('fontsize_up', { text: 'fontsize_up', icon: false, onclick: function () { edi

我想增加和减少fontsize,就像在microsoft word中一样。 我需要一个增加的快捷方式和一个减少的快捷方式。 目前我有:

tinymce.PluginManager.add('ds_fontsize', function (editor, url) {
editor.addMenuItem('fontsize_up', {
    text: 'fontsize_up',
    icon: false,
    onclick: function () {
        editor.execCommand('fontsize_up');
    }

});

editor.addMenuItem('fontsize_down', {
    text: 'fontsize-down',
    icon: false,
    onclick: function () {
        editor.execCommand('fontsize_down');
    }

});

editor.addCommand('fontsize_down', function () {
    var content = tinymce.activeEditor.selection.getContent();
    var node = tinymce.activeEditor.selection.getNode();
    var fontsize = tinymce.activeEditor.dom.getStyle(node, 'font-size', true);

    fontsize = fontsize.split("px", 1)
    fontsize--;

    //remove old span
    tinyMCE.activeEditor.execCommand('mceReplaceContent', false, '', 'span');
    tinyMCE.activeEditor.selection.setNode(tinyMCE.activeEditor.dom.create('span', { style: 'font-size: 15px' }, content));
});

editor.addCommand('fontsize_up', function () {
    var content = tinymce.activeEditor.selection.getContent();
    var node = tinymce.activeEditor.selection.getNode();
    var fontsize = tinymce.activeEditor.dom.getStyle(node, 'font-size', true);

    fontsize = fontsize.split("px", 1)
    fontsize++;

    //remove old span
    tinyMCE.activeEditor.execCommand('mceReplaceContent', false, '', 'span');
    tinyMCE.activeEditor.selection.setNode(tinyMCE.activeEditor.dom.create('span', { style: 'font-size:' + fontsize + 'px' }, content));
}); 
});
好的,这主要起作用,但如果我增加或减少一个以上的尺寸,旧的跨度将不会删除。 我得到如下HTML代码:

<p><span style="font-size:12px"><span style="font-size:13px">Hello World</span></span></p>
你好,世界

有人能为我提供解决方案或其他方法吗

谢谢Felix我有一个解决方案 tinymce编辑器实现了一个设置fontsize的函数,但是在文档中找不到。 在此处搜索“fontsize”:->第253行

这是我的代码:

tinymce.init({
...

setup: function (editor) {
//initialize shortcuts
editor.on('keydown', function (e) {
     //decrement fontsize
     if (e.ctrlKey && !e.shiftKey && e.keyCode == 226) {
         e.preventDefault();
         editor.execCommand("fontsize_down");
     }
     //increment fontsize
     if (e.ctrlKey && e.shiftKey && e.keyCode == 226) {
         e.preventDefault();
         editor.execCommand("fontsize_up");
     }
});
}
});
这是我的插件:

tinymce.PluginManager.add('ds_fontsize', function (editor, url) {
editor.addMenuItem('fontsize_up', {
    text: 'fontsize_up',
    icon: false,
    onclick: function () {
        editor.execCommand('fontsize_up');
    }

});

editor.addMenuItem('fontsize_down', {
    text: 'fontsize-down',
    icon: false,
    onclick: function () {
        editor.execCommand('fontsize_down');
    }

});

editor.addCommand('fontsize_down', function () {
    var content = tinymce.activeEditor.selection.getContent();
    var node = tinymce.activeEditor.selection.getNode();
    var fontsize = tinymce.activeEditor.dom.getStyle(node, 'font-size', true);

    fontsize = fontsize.split("px", 1)
    fontsize--;

    if (fontsize > 7 && fontsize <=72) {
        switch (fontsize) {
            case 35:
                fontsize = 28;
                break;
            case 47:
                fontsize = 36;
                break;
            case 71:
                fontsize = 48;
                break;
            default:
                if (fontsize > 12) fontsize--;
        }
        fontsize = fontsize + "px";
        alert(fontsize);
        tinymce.activeEditor.execCommand('fontsize', false, fontsize);
    }
});

editor.addCommand('fontsize_up', function () {
    var content = tinymce.activeEditor.selection.getContent();
    var node = tinymce.activeEditor.selection.getNode();
    var fontsize = tinymce.activeEditor.dom.getStyle(node, 'font-size', true);

    fontsize = fontsize.split("px", 1)
    fontsize++;

    if (fontsize > 7 && fontsize <= 72) {
        switch (fontsize) {
            case 29:
                fontsize = 36;
                break;
            case 37:
                fontsize = 48;
                break;
            case 49:
                fontsize = 72;
                break;
            default:
                if (fontsize > 12) fontsize++;
        }
        fontsize = fontsize + "px";
        alert(fontsize);
        tinymce.activeEditor.execCommand('fontsize', false, fontsize);
    }
}); 
});
tinymce.PluginManager.add('ds_fontsize',函数(编辑器,url){
editor.addMenuItem('fontsize\u up'{
文本:“fontsize_up”,
图标:false,
onclick:function(){
editor.execCommand('fontsize_up');
}
});
editor.addMenuItem('fontsize\u down'{
文本:“fontsize down”,
图标:false,
onclick:function(){
editor.execCommand('fontsize_down');
}
});
editor.addCommand('fontsize_down',function(){
var content=tinymce.activeEditor.selection.getContent();
var node=tinymce.activeEditor.selection.getNode();
var fontsize=tinymce.activeEditor.dom.getStyle(节点'font-size',true);
fontsize=fontsize.split(“px”,1)
字体大小--;
如果(fontsize>7&&fontsize 12)fontsize--;
}
fontsize=fontsize+“px”;
警报(字体大小);
tinymce.activeEditor.execCommand('fontsize',false,fontsize);
}
});
editor.addCommand('fontsize\u up',function(){
var content=tinymce.activeEditor.selection.getContent();
var node=tinymce.activeEditor.selection.getNode();
var fontsize=tinymce.activeEditor.dom.getStyle(节点'font-size',true);
fontsize=fontsize.split(“px”,1)
fontsize++;
如果(fontsize>7&&fontsize 12)fontsize++;
}
fontsize=fontsize+“px”;
警报(字体大小);
tinymce.activeEditor.execCommand('fontsize',false,fontsize);
}
}); 
});
我希望它对某人有用。:) 你好,菲利克斯