TinyMCE:通过下拉菜单插入简单的文本片段?

TinyMCE:通过下拉菜单插入简单的文本片段?,tinymce,tinymce-4,Tinymce,Tinymce 4,在TinyMCE 4中,我希望创建一个下拉菜单,无论是作为工具栏按钮还是包含值列表的菜单,只要在下拉菜单中选择这些值,就可以将这些值插入光标位置 我尝试过使用模板插件,这类插件可以工作,但它太重和复杂,无法用于我需要的内容。它不会创建下拉列表,而是打开一个弹出窗口,让您预览模板,我真的不需要所有这些 有没有更简单的方法?我不需要文本替换,类或日期插入,在弹出窗口预览,或任何先进的东西。只需在光标位置插入一个静态文本值。这里有一个小提琴,显示hw可以执行您想要的操作: 关键代码如下: setup:

在TinyMCE 4中,我希望创建一个下拉菜单,无论是作为工具栏按钮还是包含值列表的菜单,只要在下拉菜单中选择这些值,就可以将这些值插入光标位置

我尝试过使用模板插件,这类插件可以工作,但它太重和复杂,无法用于我需要的内容。它不会创建下拉列表,而是打开一个弹出窗口,让您预览模板,我真的不需要所有这些


有没有更简单的方法?我不需要文本替换,类或日期插入,在弹出窗口预览,或任何先进的东西。只需在光标位置插入一个静态文本值。

这里有一个小提琴,显示hw可以执行您想要的操作:

关键代码如下:

setup: function (editor) {
  editor.addButton('custombutton', {
    type: 'listbox',
    text: 'Custom Listbox',
    icon: false,
    onselect: function (e) {
      editor.insertContent(this.value());
    },
    values: [
      { text: 'Bold Text', value: '&nbsp;<strong>Some bold text!</strong>' },
      { text: 'Italic Text', value: '&nbsp;<em>Some italic text!</em>' },
      { text: 'Regular Text', value: '&nbsp;Some plain text ...' }
    ]
  });
}
如果您想根据后续评论向菜单中添加内容,可以执行以下操作:

此更新中的关键代码是:

editor.addMenuItem('custommenuoptions', {
    separator: 'before',
    text: 'Custom Menu Options',
    context: 'insert',
    prependToContext: true,
    menu: [
      { text: 'Bold Text', onclick: function() {editor.insertContent('&nbsp;<strong>Some bold text!</strong>')} },
      { text: 'Italic Text', onclick: function() {editor.insertContent('&nbsp;<em>Some italic text!</em>')} },
      { text: 'Regular Text', disabled: true, onclick: function() {editor.insertContent('&nbsp;Some plain text ...')} }
    ]
});  

太棒了,非常感谢!如果您不介意的话,还有一个问题:如何在菜单栏中获得与插入菜单的子菜单相同的下拉列表?为了实现插入>自定义列表框>[粗体文本|斜体文本|常规文本]之类的功能,完美。再次感谢仅供参考,在您的第一个“代码段”下拉按钮上,我注意到,当您插入一个值时,按钮关闭时的文本仍然会显示该值,例如,即使您在编辑器中的其他位置单击粗体文本,这有点混乱。我通过添加这个值来解决这个问题;在editor.insertContentthis.value;之后的onselect方法末尾;,这样按钮上的文字基本上不会改变。