我希望像在microsoft word中一样增加和减少fontsize。 我需要一个快捷方式来增加,一个减少。 目前我有这个:
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
答案 0 :(得分:3)
我有一个解决方案! :) tinymce编辑器有一个实现的函数来设置fontsize,但是你无法在文档中找到它。 在此处搜索&#34; fontsize&#34;:https://github.com/tinymce/tinymce/blob/master/js/tinymce/classes/EditorCommands.js#L253 - &gt;第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);
}
});
});
我希望它对某人有用。 :) 问候菲利克斯