将自定义图标添加到tinyMCE按钮

时间:2014-08-07 20:40:40

标签: javascript angularjs plugins tinymce

我试图将一个Font-Awsome图标添加到我添加到tinyMCE的按钮中:

 ed.addButton('youtube', {
     title: 'Add Video' ,
     icon: 'icon-youtube',
     onclick: function () {
     //do stuff here...
 }

使用像文档建议的图像是不可接受的,但由于某种原因,我无法完成这项工作。任何想法?

6 个答案:

答案 0 :(得分:25)

这个基于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;
 }

它基于matt-royalthis stack exchange wordpress thread

上的答案

答案 1 :(得分:9)

我知道这已经过时了,但我想我会回答任何有兴趣的人。我正在使用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);
    }
});

基本上这将允许您使用任何字体真棒图标,而无需为每个图标设置特定的类布局。

希望这有助于某人。

答案 2 :(得分:8)

根据我的理解,您尝试在图标列表tinyMCE中添加带图像的按钮。

 tinymce.PluginManager.add("youtube", function (editor) {   
    editor.addButton('youtube', {
        tooltip: 'Add video',
        image: tinymce.baseURL + '/plugins/youtube/icons/youtube.gif',
        onclick: function() {

        }
    }); 
});

在此文件夹中创建一个文件夹(我命名为“youtube”)创建另一个文件夹(我在其中命名为“icons”),然后在youtube文件夹下创建文件youtube.js。

答案 3 :(得分:1)

这个简单的样式表对我有用:

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,因为菜单中的布局会被破坏。

答案 4 :(得分:1)

以下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; }

答案 5 :(得分:0)

对于tinymce 5,您可以使用以下示例:

editor.ui.registry.addButton('customButton1', {
    text: '<span class="fa fa-youtube"></span>',
    //icon: '<span class="icon-youtube"></span>',
    onAction: () => alert('Button clicked!')
});