изменение размера шрифта от `10px` до` 14px` до `18px` с помощью одного ярлыка - PullRequest
2 голосов
/ 30 мая 2019

Я создаю плагин для TinyMCE5, который переключает размер шрифта выделенного текста между 10px, 14px и 18px.(Размер шрифта по умолчанию 14px)

Это моя попытка:

editor.addCommand('customfontsize_command', 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("p", 1)
fontsize--;

if (fontsize > 0 && fontsize <= 100) { // only work for first time
    switch (fontsize) {
        case 18:
            fontsize = 14;
            break;
        case 10:
            fontsize = 8;
            break;
        case 8:
            fontsize = 18;
            break;
        default:
            fontsize = 14;
    }

    fontsize = fontsize + "px";
    tinymce.activeEditor.execCommand('fontsize', false, fontsize);
}
}); // end customfontsize_command
editor.addShortcut('alt+a', 'customfontsize_command_desc', 'customfontsize_command');

Но это работает только в первый раз, когда я делаю ярлык.

Я тоже пробовал это, но с тем же результатом:

if (fontsize > 10 && fontsize <= 14) { 
    fontsize = 10;
} else if (fontsize <= 10) {
    fontsize = 18;
} else {
    fontsize = 14;
}

Я могу сделать эту работу с двумя разными сочетаниями клавиш, как это, но я бы предпочел один ярлык, который переключается между3 размера:

editor.addCommand('small_size', 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("p", 1)
    fontsize = 10
    fontsize = fontsize + "px";
    tinymce.activeEditor.execCommand('fontsize', false, fontsize);

}); // end customfontsize_command


editor.addCommand('big_size', 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("p", 1)
    fontsize = 18
    fontsize = fontsize + "px";
    tinymce.activeEditor.execCommand('fontsize', false, fontsize);

}); // end customfontsize_command

1 Ответ

2 голосов
/ 30 мая 2019

Попробуйте это,

fontsize = (fontsize <= 10) ? 18 : ((fontsize > 10 && fontsize <= 14) ? 10 : 14);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...