TinyMCE Plugin

Pulldown needs to be renderd as html

HTML

<script src="//tinymce.cachefly.net/4.2/tinymce.min.js"></script>
<textarea>

CSS

.mce-btn.mce-customButtonClass button {
      cursor: pointer;
}

JavaScript

var metaTags = ['fsfsd',"space", "dssdfff"]
      var metaArray = [];
      metaTags.forEach(function(value) {
        if(value != "space"){
          metaArray.push({
            text: value,
            onclick: function() {
              var before, after = false;
              if(value == "webversion"){
                editor.insertContent((before?'':'&nbsp;')+'<a href="%C#'+value+'#C%">click for webversion</a>'+(after?'':'&nbsp;'));
              }else if(value == "webversion_alt"){
                editor.insertContent((before?'':'&nbsp;')+'<a href="%C#'+value+'#C%">click for alternative webversion</a>'+(after?'':'&nbsp;'));
              }else if (value == "unsubscribe"){
                editor.insertContent((before?'':'&nbsp;')+'<a href="%R#'+value+'#R%">click to unsubscribe</a>'+(after?'':'&nbsp;'));
              } 
              else{
                editor.insertContent((before?'':'&nbsp;')+'%R#'+value+'#R%'+(after?'':'&nbsp;'));
              }
            }});
          }else{
            metaArray.push({
              text: "---------------",
              disabled: "true",
              classes: "tinymce-blank"
            });
          }
      });

tinymce.PluginManager.add('foo', function (editor, url) {
    editor.addButton('foo', {
        title: 'Label for plugin button',
        text: 'Plugin button text',
        classes: 'customButtonClass',
        menu:metaArray
    });
});

tinymce.init({
    selector: 'textarea',
    plugins: ['foo'],
    toolbar: "foo"

});