2013-09-16 6 views
3

Ниже приведен код для моего TinyMCE текстового поляСоздание пользовательского всплывающего окна с TinyMCE

tinymce.init({ 
     selector: "textarea", 
     height : 350, 
      plugins: [ 
        "link image lists preview anchor" 
      ], 
     toolbar: " image bold italic | formatselect | undo redo | cut copy paste | bullist numlist | undo redo | link unlink dummyimg | preview", 
     menubar: false, 
     toolbar_items_size: 'small', 
     setup : function(ed) { 
     // Add a custom button 
     ed.addButton('dummyimg', { 
      title : 'Add image', 
      image : 'resources/images/img.jpg', 
      onclick : function() { 
       if($('#imageupload').val()){ 
        ed.focus(); 
        ed.selection.setContent('<img src="<%=strWebhost%>/news_cms/resources/images/dummyimg.jpg" />'); 
       } else{ 
        alert("Please select an image."); 
       } 

       } 
      }); 
     }, 
     onchange_callback: function(editor) { 
      tinyMCE.triggerSave(); 
      $("#" + editor.id).valid(); 
     } 
    }); 

Я добавил пользовательскую кнопку под названием dummyimg который добавляет предопределенное изображение в контейнер TinyMCE. Мое требование: мне нужно всплывающее окно, подобное показанному ниже, которое позволяет мне добавить только изображение title с помощью настраиваемой кнопки.

enter image description here

Спасибо заранее.

ответ

7

этот пример должен получить вашу работу:

tinymce.init({ 
    selector:'textarea.editor', 
    menubar : false, 
    statusbar : false, 
    toolbar: "dummyimg | bold italic underline strikethrough | formatselect | fontsizeselect | bullist numlist | outdent indent blockquote | link image | cut copy paste | undo redo | code", 
    plugins : 'advlist autolink link image lists charmap print preview code', 
    setup : function(ed) { 
     ed.addButton('dummyimg', { 
      title : 'Edit Image', 
      image : 'img/example.gif', 
      onclick : function() { 
       ed.windowManager.open({ 
        title: 'Edit image', 
        body: [ 
         {type: 'textbox', name: 'source', label: 'Source'} 
        ], 
        onsubmit: function(e) {  
         ed.focus(); 
         ed.selection.setContent('<pre class="language-' + e.data.language + ' line-numbers"><code>' + ed.selection.getContent() + '</code></pre>'); 
        } 
       }); 
      } 
     }); 
    } 
}); 

Очевидно, что вы должны были бы изменить ed.selection.setContent линию в onsubmit, чтобы удовлетворить свои собственные потребности, а также установление правильных toolbar и plugins настройки.

+0

Не могли бы вы объяснить, что такое onsubmit? Кроме того, как получить содержимое текстового поля 'source'? Спасибо – Abdillah

+0

@ Abdillah просто пойдите как: e.data.source - >> e.data. [Name] –

+1

Документация не очень полезна, поэтому я пошел и написал статью, в которой перечислены различные виды виджетов и контейнеров: http : //makina-corpus.com/blog/metier/2016/how-to-create-a-custom-dialog-in-tinymce-4 – Gagaro

1

Хотя этот вопрос старый. Я отвечаю на другой вопрос (я еще не могу прокомментировать).

«как получить содержимое исходного текстового поля?»

onSubmit: function(e) { 
    console.log(e.data.source) 
} 
Смежные вопросы