добавление пользовательского значка к кнопке tinyMCE
Я пытаюсь добавить значок Font-Awsome к кнопке, которую я добавил в tinyMCE, таким образом:
ed.addButton('youtube', {
title: 'Add Video' ,
icon: 'icon-youtube',
onclick: function () {
//do stuff here...
}
использование изображения, подобного предложению документов, было неприемлемым, но по какой-то причине я не могу выполнить эту работу. есть идеи?
Ответы
Ответ 1
это решение на основе CSS, похоже, прекрасно работает:
i.mce-i-[FONT-AWESOME-CLASSNAME]:before { // FONT-AWESOME-CLASSNAME e.g. "icon-youtube"
content: "[FONT-AWESOME-CONTENT]"; // FONT-AWESOME-CONTENT e.g. "\f166"
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
text-decoration: inherit;
color: #000;
font-size: 1.5em;
padding-right: 0.5em;
position: absolute;
top: 15%;
left: 0;
}
он основан на матово-королевском ответе на эту цепочку обмена wordpress thread
Ответ 2
Из того, что я понимаю, вы пытаетесь добавить кнопку с изображением в список значков tinyMCE.
tinymce.PluginManager.add("youtube", function (editor) {
editor.addButton('youtube', {
tooltip: 'Add video',
image: tinymce.baseURL + '/plugins/youtube/icons/youtube.gif',
onclick: function() {
}
});
});
Создайте папку (я назвал "youtube") в этой папке создайте другую папку (я назвал "значки", в которые вы помещаете свое изображение), а затем создайте файл youtube.js под папкой youtube.
Ответ 3
Я знаю, что это старо, но я думал, что брошу свой ответ всем, кто заинтересован. Я использую TinyMCE 4. Я добавил это в свой CSS
.mce-ico.mce-i-fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
затем, когда я устанавливаю значок для кнопок, которые я просто использую.
editor.addButton('adjust', {
tooltip: 'Adjust Layout',
icon: 'fa fa-adjust',
onclick: function () {
dialogLayout(editor, url, settings);
}
});
в основном это позволит вам использовать любые шрифты, удивительные значки, без необходимости иметь конкретный макет класса для каждого значка.
Надеюсь, это поможет кому-то.
Ответ 4
Эта простая таблица стилей работала для меня:
i.mce-i-[FONT-AWESOME-CLASSNAME]:before { // FONT-AWESOME-CLASSNAME e.g. "icon-youtube"
content: [FONT-AWESOME-CONTENT]; // FONT-AWESOME-CONTENT e.g. "\f166"
font-family: FontAwesome;
}
Его можно использовать для кнопки панели инструментов или пункта меню одинаково хорошо.
ed.addButton('youtube', {
title: 'Add Video' ,
icon: '[FONT-AWESOME-CLASSNAME]',
onclick: function () { /* magic */ }
}
ed.addMenuItem('youtube', {
text: 'Add Video' ,
icon: '[FONT-AWESOME-CLASSNAME]',
onclick: function () { /* magic */ },
context: 'view'
}
Не используйте position: absolute
потому что макет в меню будет испорчен.
Ответ 5
Следующий CSS работает для TinyMCE 4 и FontAwesome 5:
.mce-ico.mce-i-fas {
display: inline-block;
font-family: 'Font Awesome 5 Free';
font-weight: 900;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }