Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在summernote中将动态自定义按钮添加为数组_Javascript_Jquery_Arrays_Summernote - Fatal编程技术网

Javascript 在summernote中将动态自定义按钮添加为数组

Javascript 在summernote中将动态自定义按钮添加为数组,javascript,jquery,arrays,summernote,Javascript,Jquery,Arrays,Summernote,我使用所见即所得编辑器“summernote”和codeigniter。我想在工具栏上添加我自己的按钮,在单击时插入特定文本。中描述了该场景 注意: $('#model_txt').summernote({ height: 250, toolbar: [ ['style', ['bold', 'italic', 'underline', 'clear']], ['font', ['strikethrough', 'superscript', 's

我使用所见即所得编辑器“summernote”和codeigniter。我想在工具栏上添加我自己的按钮,在单击时插入特定文本。中描述了该场景

注意:

$('#model_txt').summernote({
    height: 250,

    toolbar: [
        ['style', ['bold', 'italic', 'underline', 'clear']],
        ['font', ['strikethrough', 'superscript', 'subscript']],
        ['fontsize', ['fontsize']],
        ['color', ['color']],
        ['para', ['ul', 'ol', 'paragraph']],
        ['height', ['height']]
    ]
});
但是我得到的按钮名称分别是从数据库单击时插入的文本。我通过一个ajax调用获取数据,该调用调用一个PHP函数,该函数打印查询中的数据

AJAX调用:

var all_vars = null;

$.ajax({url: "get_vars", success: function(result){
     all_vars = result.split(";");
});
现在我有了一个包含名称的数组(例如:
all\u vars[0]
)。 但我不知道如何在工具栏中插入名称作为按钮。。。你能帮我吗


有人能帮我吗?我尝试用JS函数eval()来实现这个功能,但我认为这不是最好的解决方案

“127.0.0.1/create_var_buttons”上的PHP函数动态创建JS代码

<script>
$(document).ready(function() {

    var resturl = 'http://127.0.0.1/create_var_buttons';

    $.ajax({
        url: resturl,
        success: function(data){
            eval(data);
        }
    });

});

$(文档).ready(函数(){
var resturl='1〕http://127.0.0.1/create_var_buttons';
$.ajax({
url:resturl,
成功:功能(数据){
评估(数据);
}
});
});

我以前也遇到过同样的需求,我是这样做的:

  • 我必须声明一个变量来保存summernote的工具栏数组:

    变量工具栏=[ ['style'、['bold'、'italic'、'underline'、'clear'], [‘插入’、[‘图片’、‘链接’], ['misc'、['undo'、'redo'、'codeview']], [para',[ul',ol',段落]], ['fontsize'、['fontsize'、'height']], ['color',['color']], ['forecolor',['forecolor']], ['custom',['ForCar']] ];

  • 将数据保存到summernotes的“按钮”属性的另一种方法:

    变量opt_btns_custom={ 汽车:汽车 };

  • 另一个用于保存整个summernote选项的变量:

    var sm_选项={ 身高:阿尔图拉, 工具栏:工具栏, 按钮:opt_BTN_自定义, 回调:{} }

  • 然后,我编写了下面的函数,为需要创建的每个按钮调用Ajax的.done()

    函数addBtnText(b_内容、b_工具提示、文本){

    }

OBS:我使用随机数(I)来避免与SM内的按钮冲突问题

var sm_botao_custom = function (context) {
    var ui = $.summernote.ui;

    options = {
        contents: b_content,
        tooltip: b_tooltip,
        click: function () {
            context.invoke('editor.insertText', text);
        }
    }

    var button = ui.button(options);

    return button.render();
}

i = Math.floor(Math.random() * (1000 - 1 + 1)) + 1;

toolbar.push(['custom', ['sm_botao_custom_'+i]]);

opt_btns_custom['sm_botao_custom_'+i] = sm_botao_custom;

//Restart SM to apply the created buttons
$('#d_summernote').summernote('destroy');
$('#d_summernote').summernote(sm_options);