2015-01-06 2 views
1

Я пытаюсь переопределить значение по умолчанию tinymce в peranhacms, как предлагается здесь Configure/override Piranha CMS html editor so as not to add &nbsp's to html Я трачу уже около часа, пытаясь исправить эту проблему. Есть много ресурсов на эту проблему, но не могу заставить ее работать.Tinymce added & nbsp

Вот как мой tinymce.init выглядит.

<script type="text/javascript" src="~/res.ashx/areas/manager/content/js/ext/tiny_mce/tinymce.min.js"></script> 
<script type="text/javascript"> 
    tinymce.init({ 
     mode: 'specific_textareas', 
     editor_selector: "editor", 
     apply_source_formatting: false, 
     cleanup_on_startup: false, 
     trim_span_elements: false, 
     cleanup: false, 
     convert_urls: false, 
     force_br_newlines: true, 
     force_p_newlines: false, 
     remove_linebreaks: false, 
     convert_newlines_to_brs: false, 
     forced_root_block: '', 
     inline_styles : true, 
     entity_encoding: 'raw', 
     verify_html: false, 
     //forced_root_block: false, 
     validate_children: false, 
     remove_redundant_brs: false, 
     fix_table_elements: false, 

     entities: '160,nbsp,38,amp,60,lt,62,gt', 

     plugins: [ 
      "autoresize autolink code hr paste piranhaimage link" 
     ], 
     width: "100%", 
     height: "340", 
     autoresize_min_height: 340, 
     @if (File.Exists(Server.MapPath("~/areas/manager/content/css/editor.css"))) { 
     <text>content_css: "@Url.Content("~/areas/manager/content/css/editor.css")",</text> 
     } 
     toolbar: "bold italic underline | bullist numlist hr | formatselect removeformat | cut copy paste | link piranhaimage | code", 
     paste_auto_cleanup_on_paste: false, 
     paste_postprocess: function (pl, o) { 
      // remove extra line breaks 
      o.node.innerHTML = o.node.innerHTML.replace(/&nbsp;/ig, " "); 
      alert("a1"); 
     }, 
     cleanup_callback: 'my_cleanup_callback', 
    }); 
    function my_cleanup_callback(type, value) { 
     alert("a2"); 
     switch (type) { 
      case 'get_from_editor': 
       // Remove &nbsp; characters 
       value = value.replace(/&nbsp;/ig, ' '); 
       alert("a3"); 
       break; 
      case 'insert_to_editor': 
      case 'submit_content': 
      case 'get_from_editor_dom': 
      case 'insert_to_editor_dom': 
      case 'setup_content_dom': 
      case 'submit_content_dom': 
      default: 
       break; 
     } 
     return value; 
    } 
</script> 

вот пример HTML я использую, чтобы вставить в tinyice текстовое поле

<div class="catelog-box"> 
    <img src="images/dance.png" alt="dine"> 
    <div class="cat-detail"> 
    <h2>Dance</h2> 
    <p>Dis purus arcu etiam auctor risus aliquam mid turpis eu vel, nunc rhoncus lacus natoque ridiculus...</p>   
    </div> 
</div> 

И как это выглядит в исходном браузере: enter image description here

я ставлю оповещения, чтобы проверить если paste_postprocess и my_cleanup_callback фактически стреляют, но это не так. И у меня все еще есть & nbsp в html.

Я пытался установить cleanup: true и paste_auto_cleanup_on_paste: true, но это не помогло стрелять paste_postprocess и my_cleanup_callback

Как исправить проблему & NBSP?

ответ

0

TinyMCE монстр параметров и настроек, но, учитывая ссылку, которые вы предоставили и, что вы использовали метод очистки от TinyMCE is adding &nbsp instead of the space when using the word paste, вы пробовали настройки:

paste_auto_cleanup_on_paste: true 

Поскольку установлен в примере, на который вы ссылаетесь. Помимо этой догадки, я понятия не имею, почему это событие не стреляет.

С наилучшими пожеланиями

Хакан

1

Следующий код очистить все мне в содержании TinyMCE

tinymce.init({ 
    selector: "textarea", 
    invalid_elements :'strong,bold,b,em,br,span,div,p,img,a,table,td,th,tr,header,font,body,h,h1,h2,h3,h4,h5', 
    invalid_styles: 'color font-size text-decoration font-weight', 
    menubar: false, 
    toolbar:false, 
    statusbar:false, 
    forced_root_block : "", 
    cleanup: true, 
    remove_linebreaks: true, 
    convert_newlines_to_brs: false, 
    inline_styles : false, 
    entity_encoding: 'raw', 
    entities: '160,nbsp,38,amp,60,lt,62,gt', 
});} 
5

Просто добавив entity_encoding: 'raw' решить эту проблему.

1

Я знаю, что это старый, но добавление этих свойств CSS к элементу вашего редактора может решить проблему. Это не крошечная проблема с MCE, так работают редактируемые div.

#editor { 
    white-space: pre-wrap; 
    word-wrap: break-word; 
} 

Приветствия

Смежные вопросы