2013-02-14 5 views
1

Я использую встроенный редактор ipweditor инструмент, который внутренне использует редактор tinyMCE. На своей демонстрационной странице используется старая версия tinyMCE, которая не работает в моем IE. Поэтому я обновил tinyMCE с последней версией.TinyMCE возвращает содержимое без HTML

В старой версии TinyMCE он возвращал мне определенный контент со всеми тегами HTML, в то время как в новой версии он возвращает мне только текст без HTML-тегов. Вот ссылка jsFiddle demo. Кто-нибудь знает, как мне настроить tinyMCE, чтобы он также возвращал мне HTML-теги.

HTML

<div style="display:none"> 
    <form method="post" action="somepage"> 
     <textarea name="content" style="width:100%"></textarea> 
    </form> 
</div> 
<div style="border: solid thin gray; padding:5px;"> 
    <div class="my_text"><b> <span>Click me! I am editable and WYSIWYG!!!</span></b> 
</div> 

Javascript

$(document).ready(function() { 
    var ed = new tinymce.Editor('content', { 
     mode: "exact", 
     theme: "advanced", 
     plugins: "emotions,table", 
     theme_advanced_toolbar_location: "top", 
     theme_advanced_statusbar_location: "bottom", 
     theme_advanced_resizing: true, 
     theme_advanced_buttons1: "bold,italic,underline,fontselect,fontsizeselect,forecolor,backcolor,|,code,", 
     theme_advanced_buttons2: "", 
     theme_advanced_buttons3: "", 
     table_default_cellspacing: 0, 
     table_default_border: 1, 
     remove_linebreaks: false 
    }); 

    $('.my_text').editable({ 
     type: 'wysiwyg', 
     editor: ed, 
     onSubmit: function submitData(content) { 
      alert(content.current); 
     }, 
     submit: 'save', 
     cancel: 'cancel' 
    }); 
}); 

ответ

5

Не всегда желательно вносить изменения в библиотеку плагинов, но это действительно требует некоторой модификации. Проблема была в использовании инструмента «ipweditor.js». Он создает внутренний объект редактора tinyMCE внутри и получает ответ в текстовом формате от tinyMCE.

var r =options.editor.getContent({format : 'text'}); 

Мы должны заменить «текст» с «HTML»

var r =options.editor.getContent({format : 'html'}); 

Это более предпочтительно, чтобы этот параметр формат также динамический так добавить переменную настройки в щёток настроек и извлечения значения там.

var defaults = { 
    onEdit: null, 
    onSubmit: null, 
    onCancel: null, 
    editClass: null, 
    submit: null, 
    cancel: null, 
    type: 'text', //text, textarea or select 
    submitBy: 'blur', //blur,change,dblclick,click 
    editBy: 'click', 
    editor: 'non', 
    options: null, 
    format:'text' 
} 
var options = $.extend(defaults, options); 

и теперь извлекается с использованием формата, определенного в настройке.

var r =options.editor.getContent({format : options.format}); 
1

Вы можете использовать content.previous. Here - это модифицированная скрипка.

+0

действительно «content.pervious» показывает текст с тегами HTML, но я хочу отредактировать текст «content.current» со всеми тегами HTML. – Nehal

+0

выглядит так: ipweditor не поддерживает это (или должен быть сконфигурирован особенно - проверьте документы). Другим подходом к решению этого может быть использование команд редактора тинимы перед подачей (объект редактора ушел, когда ipweditor submit получает вызов!). – Thariama

+1

@Tharima: Да, проблема была в ipweditor. Это создавало внутренне другой объект tinyMCE и получал контент в текстовом формате, его нужно заменить на «html». – Nehal

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