Javascript 在summernote中将动态自定义按钮添加为数组
我使用所见即所得编辑器“summernote”和codeigniter。我想在工具栏上添加我自己的按钮,在单击时插入特定文本。中描述了该场景 注意: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
$('#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_工具提示、文本){ }
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);