我正在尝试使用summernote来允许用户编辑电子邮件模板。我想让他们能够插入模板/令牌项,例如{{name}}。理想情况下,我喜欢它,以便在编辑所述模板时向他们展示他们拥有模板的位置。
代码示例:
$('summernote').summernote({
height: 225,
callbacks: {
onBlur: function(contents, $editable) {
var rx = /{([^}]+)}/;
var instance = new Mark("div.panel-body");
var regex = new RegExp(rx, 'g');
instance.markRegExp(regex);
},
},
hint: {
mentions: ['name', 'test'],
match: /\B{{(\w*)$/,
search: function (keyword, callback) {
callback($.grep(this.mentions, function (item) {
return item.indexOf(keyword) == 0;
}));
},
content: function (item) {
return '{{' + item + '}}';
}
}
});
在考虑这个实现基于这样的事情编写summernote的插件时:https://github.com/Nanakii/summernote-plugins/blob/master/plugin/template/summernote-ext-template.js然后在保存时删除特殊标签的功能似乎是我最好的选择,但是如果有人这样做了,或者这已经存在我宁愿不重新发明轮子。
tldr
答案 0 :(得分:0)
如果您在表单中使用textarea
初始化了summernote,则可以中断表单提交。通过javascript进行必要的更改,然后以编程方式提交表单。
我使用summernote-save-button插件(https://github.com/DiemenDesign/summernote-save-button)执行类似的过程。
如果用户试图离开当前页面以提醒他们保存,则当前检查内容是否已保存。我在我的CMS中有另一个版本,它在提交表单之前对textarea数据进行编码,以解决一些服务器管理员对像iframe这样的东西进行严格的数据过滤,以便使用iframe嵌入youtube视频。
顺便说一句,我也是这个项目的新开发者之一,我很乐意帮助解决你的问题。