2016-05-10 4 views
2

Когда я копирую содержимое правильно отформатированного документа Word, что означает, что у него есть теги H1, 3 абзаца, URL-ссылка и ссылка по электронной почте, некоторые полужирные и некоторые курсивные слова - в основном очень простой документ, форматирование не сохраняется. Ниже приведен файл инициализации.Редактор TinyMCE Editor (3.x) при вставке из Word 2015

tinyMCE.init({ 
    // General options 
    mode : "exact", 
    elements : "content", 
    theme: "advanced", 
    //plugins : "safari,pagebreak,advhr,advimage,advlink,iespell,insertdatetime,preview,paste,fullscreen", 
    plugins : "pagebreak,style,advlink,iespell,insertdatetime,preview,print,contextmenu,paste,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups", 
    plugin_preview_width : "500", 
    plugin_preview_height : "600", 
    // Theme options 
    theme_advanced_buttons1:"cut,copy,paste,pasteword,|,undo,redo,|,bold,italic,underline,|,forecolor,backcolor|,justifyleft,justifycenter,justifyright,|,bullist,numlist,|fullscreen,code,iespell,imageButton,preview", 
    theme_advanced_disable : "help,removeformat,sub,sup,anchor,link,unlink,image,|,insertdate,inserttime,advhr,print", 
    theme_advanced_buttons2 : "", 
    theme_advanced_buttons3 : "", 
    paste_auto_cleanup_on_paste: false, 
    theme_advanced_toolbar_location : "top", 
    theme_advanced_toolbar_align : "center", 
    valid_elements : "*[*]", 
    convert_urls:true, 
    cleanup : false   
}); 

Когда я запускаю следующие консольные команды, я вижу код «html». Кроме того, когда я нажимаю на значок HTML на панели инструментов, я также вижу код HTML (хотя все теги H1 удаляются, за исключением первого).

// Get the HTML contents of the currently active editor 
console.debug(tinyMCE.activeEditor.getContent()); 

// Get the raw contents of the currently active editor 
tinyMCE.activeEditor.getContent({format : 'raw'}); 

// Get content of a specific editor: 
tinyMCE.get('content').getContent() 

При нажатии на кнопку отправки, все у меня есть на моей странице действий простой cfdump и там, это просто текст и гигантский поскольку пункт. Нет тегов P, а не тегов H1, просто текст.

<cfdump var="#form.content#"> 
<cfoutput> 
    #form.content# 
    <textarea>#form.content#</textarea> 
</cfoutput> 

Только для улыбок, на странице действий, я вставил form.content в мою MSSQL базу данных с типом данных NVARCHAR (2000), чтобы посмотреть, если возможно, браузер был играть в игры, а база данных показывает только равнину текст тоже. Вот еще одна ненормальность в том, что при запуске моей тестовой страницы в Chrome сохраняется только обычный текст. Когда я запускаю тестовую страницу в FireFox, данные Microsoft XML сохраняются.

Мне нужен только один браузер для работы. Может ли кто-нибудь дать какие-либо рекомендации по этому поводу?

+0

http://archive.tinymce.com/tryit/3_x/full.php - этот пример показывает html-теги в дампе. Единственное различие заключается в том, что дамп - это PHP, но это не имеет значения, не так ли? – HPWD

+0

Все, что я могу думать, это то, что редактор удаляет HTML-код, чтобы избежать атак Cross-Site Scripting. TimyMCE не является редактором HTML, это текстовый редактор. Если вы хотите ввести HTML-код в него, вы должны, вероятно, открыть представление HTML через этот значок и вставить HTML-код там. –

+0

X Site Scripting - это то, что я не рассматривал. С точки зрения редактора HTML и текстового редактора вы должны иметь возможность передавать HTML-код, хотя (например, из поля базы данных), и он преобразует его в эквивалент текстового редактора. Я понимаю ограничения, но для передаваемого контента должно быть хорошо с учетом его возможностей. Что касается X-Scripting, знаете ли вы случайно, что атрибут отключил эту функцию безопасности? – HPWD

ответ

0

Gotta love spaghetti code.

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

/Start Отрывок из: http://ckeditor.com/forums/Support/FCK-Link-picker-errors-FF-3

У меня такая же проблема с FCK 2.3.2. Лучшее решение для изменения функции CreateLink в fckeditorcode_gecko.js: Старый код, который я имел:

FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=document.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};

Новый код:

FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;}}};

На самом деле, я только заменил document.evaluate с this.EditorDocument.evaluate

/конец фрагмента кода

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