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

TinyMCE: inserting simple snippets of text via dropdown?

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

我试过使用模板插件,效果不错,但它太重太复杂,无法满足我的需要(它不会创建下拉菜单,而是打开一个弹出窗口,让你预览你的模板,我真的不需要那么多)。

有更简单的方法吗?我不需要文本替换、class 或日期插入、在弹出窗口中预览或任何高级内容。只需在光标位置插入一个静态文本值。

这是一个 TinyMCE Fiddle,它显示了硬件来做你想做的事:

http://fiddle.tinymce.com/orgaab/1

关键代码是这样的:

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 ...' }
    ]
  });
}

如果您想向菜单添加内容(根据您的后续评论),您可以这样做:

http://fiddle.tinymce.com/orgaab/4

本次更新关键代码为:

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 ...')} }
    ]
});