2014-12-01 43 views

cevap

11

placeholder plugin benim için çok çalıştı. Bu eklenti, TinyMCE editörü için HTML5 yer tutucu özellik işlevi getiriyor. Burada

3
<html> 
<head> 
    <title>Bhanu Pratap, Tinymce with placeholder... </title> 
    <script src="http://cdn.tinymce.com/4/tinymce.min.js"></script> 
    <script type="text/javascript"> 
     tinymce.PluginManager.add('placeholder', function (editor) { 
      editor.on('init', function() { 
       var label = new Label; 
       onBlur(); 
       tinymce.DOM.bind(label.el, 'click', onFocus); 
       editor.on('focus', onFocus); 
       editor.on('blur', onBlur); 
       editor.on('change', onBlur); 
       editor.on('setContent', onBlur); 
       function onFocus() { if (!editor.settings.readonly === true) { label.hide(); } editor.execCommand('mceFocus', false); } 
       function onBlur() { if (editor.getContent() == '') { label.show(); } else { label.hide(); } } 
      }); 
      var Label = function() { 
       var placeholder_text = editor.getElement().getAttribute("placeholder") || editor.settings.placeholder; 
       var placeholder_attrs = editor.settings.placeholder_attrs || { style: { position: 'absolute', top: '2px', left: 0, color: '#aaaaaa', padding: '.25%', margin: '5px', width: '80%', 'font-size': '17px !important;', overflow: 'hidden', 'white-space': 'pre-wrap' } }; 
       var contentAreaContainer = editor.getContentAreaContainer(); 
       tinymce.DOM.setStyle(contentAreaContainer, 'position', 'relative'); 
       this.el = tinymce.DOM.add(contentAreaContainer, "label", placeholder_attrs, placeholder_text); 
      } 
      Label.prototype.hide = function() { tinymce.DOM.setStyle(this.el, 'display', 'none'); } 
      Label.prototype.show = function() { tinymce.DOM.setStyle(this.el, 'display', ''); } 
     }); 

     tinymce.init({selector: ".EditorControl",plugins: ["placeholder"]}); 

    </script> 
</head> 
<body> 
    <textarea class="EditorControl" placeholder="Bhanu Pratap welcomes you, please enter some text here...."></textarea> 
</body> 
</html> 
  1. biz "(onFocus 'click', label.el) tinymce.DOM.bind;" Bir etikel eklenmesi ve TinyMCE DOM nesnesinin Bind metodlarını onu geçiyoruz
  2. Saklanmak için yer tutucuya tıklayın veya editöre herhangi bir metin var.
  3. Yer tutucu rengini # aaaaa'ya ayarlayarak ihtiyacımıza göre değişebiliriz.
  4. ayar yastığını% 25 ve kenar boşluğunu 5px'e ve yer tutucu yazı tipi boyutuna göre 17 px'e kadar bu ayarlar ihtiyaca göre değiştirilebilir.
  5. Yer Tutucu mesajını da değiştirebilir ve anlamlı bir manşa olarak ayarlayabiliriz. enter image description here

Teşekkür ... aşağıda TinyMCE 3 ve birlikte :)

1

, eklenti çalışıyor. Eklenti, TinyMCE 4'te mevcut değildir, ancak init üzerine bir yer tutucu eklenebilir ve ardından odağı kaldırabilirsiniz. Unutmayın TinyMCE bir iframe kullanır.

tinymce.init({ 
    //here all the rest of the options 
    //xxxxx 
    //Add the placeholder 
    setup: function (editor) { 
    editor.on('init', function(){ 
     if (tinymce.get('Text').getContent() == ''){ 
     tinymce.get('Text').setContent("<p id='#imThePlaceholder'>Your nice text here!</p>"); 
     } 
    }); 
    //and remove it on focus 
    editor.on('focus',function(){ 
     $('iframe').contents().find('#imThePlaceholder').remove(); 
    }); 
}) 
+0

HTML'imi 'tinymce.get (' Text ') almak için nasıl yapılandırmam gerektiğinden emin değilim. getContent() 'düzgün çalışması için veya işleri yapmanın eski bir yolu, ancak bunu "tinyMCE.activeEditor.getContent()" olarak değiştirdiğimde, bu çözümü işe yaratabildim. Bu andyk'yi gönderdiğiniz için teşekkürler. –