0

文档示例显示您可以通过设置在.redactor()调用中执行此操作buttonsCustom。插件 API 文档展示了如何添加单个按钮。但是如何通过插件 API 添加下拉菜单?

4

4 回答 4

2

好的,查看编辑器源代码(最新版本 8.2.6),我注意到您可以将第四个参数传递给插件 API 的addBtn函数。所以,假设你想从插件内部添加一个字体大小下拉菜单:

RedactorPlugins.fontSize = {

    init: function(obj) {

        btnCallback = function(obj,event,key) {
            // button actions, if any
        }

        dropdown = {
            small: {
                title: 'Small'
                callback: function(obj,event,key) { //set the font size to small }
            }
            medium: {
                title: 'Medium'
                callback: function(obj,event,key) { //set the font size to medium }
            }
        }

        this.addBtn('fontSize','Change font size', btnCallback, dropdown);
    }

}
于 2013-04-15T18:27:04.927 回答
0

对于使用第 9 版 redactor 的任何人,API 都已更改。这是创建带有回调的下拉列表的方法。重要的是传递给的第三和第四个参数buttonAdd,第三个参数应该是回调函数,由于函数点击处理程序的编写false方式,这必须是为了让编辑器自动显示下拉菜单。buttonBuild第 4 个参数与版本 8 相同。

RedactorPlugins.snippets = {
  init: function(){
    var dropdown = {
      quote: {
        title: "Pull Quote",
        callback: function(){
          // callback code here
        }
      },
      accordian: {
        title: "Accordian",
        callback: function(){
          // callback code here
        }
      }
    };
    this.buttonAdd('snippets', 'Snippets', false, dropdown);
  }
};

如果您需要在调用下拉列表时运行回调,则需要编写代码以在作为第三个参数传递的回调中显示下拉列表。

于 2013-06-27T09:42:32.647 回答
0

将类名添加到下拉项的示例 例如:-

dropdown = {
        small: {
            title: 'Small',
            callback: function(obj,event,key) { //set the font size to small },
            className:'YOURCLASS NAME'
            }
  }
于 2014-06-25T07:51:26.193 回答
0

杰米德是对的。对于更高版本的 Redactor,API 发生了很大变化。这是我用于 v9.2.5 的内容。

此代码向工具栏添加了一个下拉菜单,其中包含 2 个新按钮

if (!RedactorPlugins) var RedactorPlugins = {};

RedactorPlugins.newbtns = {
    init: function ()
    {
        //biu is bold italics underline
        var newbtns = {};
        newbtns['Bold'] = { title: 'Button 1', callback: this.btn1 };
        newbtns['Italics'] = { title: 'Button 2', callback: this.btn2 };

        this.buttonAdd('newbtns', 'New Buttons', false, newbtns);
        // adding font-awesome buttons
        // u will have to include font-awesome stylesheet separately for this to work
        this.buttonAwesome('newbtns', 'fa-tasks');

    },
    btn1: function(buttonName, buttonDOM, buttonObj, e)
    {
        // add stuff for btn1
    },
    btn2: function(buttonName, buttonDOM, buttonObj, e)
    {
        // add stuff for btn2
    }
};

使用您的插件初始化编辑器

$('#myTextarea').redactor({
    plugins: ['newbtns']
});

有关更多信息,请参阅此页面 - Redactor 插件

于 2014-09-01T07:10:52.243 回答