我正在尝试自定义插件中编辑器按钮的行为。单击时,它将打开一个模式,用户可以在其中输入一些文本。确认后,我想将此文本包装到代码标签中。但是,我不想将其视为来自文本编辑器的文本,而是希望将其作为可视文本来处理。这意味着,我要保留任何格式(空格和换行符),但除了我随后添加的代码标签之外,不接受任何其他标签。
function showDialog() {
var win = ed.windowManager.open({
title: "Insert code",
body: {
type: 'textbox',
name: 'code',
multiline: true,
minWidth: ed.getParam("code_dialog_width", 600),
minHeight: ed.getParam("code_dialog_height", Math.min(tinymce.DOM.getViewPort().h - 200, 500)),
spellcheck: false,
style: 'direction: ltr; text-align: left'
},
onSubmit: function(e) {
ed.focus();
ed.undoManager.transact(function() {
ed.insertContent('<code>' + e.data.code + '</code>');
});
ed.selection.setCursorLocation();
ed.nodeChanged();
}
});
}
答案 0 :(得分:0)
首先,我将该函数包装在标签中,并确保通过在该函数末尾添加showDialog()来启动该函数,以便DOM知道调用该函数。并使用wordpress的内容过滤器,无论您如何禁用内容填充,除非您禁用了自动填充格式的内容过滤器。如果您访问https://www.willpeavy.com/minifier/之类的网站并将代码复制到该网站中并缩小空格,则应该可以将其包含在MCE的“文本(非可视)”标签中。话虽这么说,在MCE中运行功能代码确实是一种不好的做法,但最好为它制作一个单独的页面/帖子模板。