从Word 2015粘贴时,TinyMCE编辑器(3.x)更改格式

时间:2016-05-10 17:19:31

标签: coldfusion tinymce

当我复制格式正确的word文档的内容时,意味着它有H1标签,3个段落,URL链接和电子邮件链接,一些粗体和一些斜体字 - 基本上是一个非常基本的文档,格式化不是'保留。下面是我的初始文件。

    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插入到数据类型为nvarchar(2000)的MSSQL数据库中,只是为了查看浏览器是否正在玩游戏而数据库也只显示纯文本。另一个异常是,当我在Chrome中运行我的测试页时,只保存纯文本。当我在FireFox中运行测试页面时,将保存Microsoft XML数据。

我只需要一个浏览器即可运行。有人可以就此提供任何指导吗?

1 个答案:

答案 0 :(得分:0)

喜欢意大利面条代码。

我错过了一些逻辑,我正在检查我错过的浏览器,所以这个问题确实与fckeditor有关而不是tinymce。

/从http://ckeditor.com/forums/Support/FCK-Link-picker-errors-FF-3

开始代码段

我在FCK 2.3.2中遇到了同样的问题。最好的解决方案是在fckeditorcode_gecko.js中更改函数CreateLink: 我有旧代码:

lineSegmentsIntersect = (x1, y1, x2, y2, x3, y3, x4, y4)-> a_dx = x2 - x1 a_dy = y2 - y1 b_dx = x4 - x3 b_dy = y4 - y3 s = (-a_dy * (x1 - x3) + a_dx * (y1 - y3)) / (-b_dx * a_dy + a_dx * b_dy) t = (+b_dx * (y1 - y3) - b_dy * (x1 - x3)) / (-b_dx * a_dy + a_dx * b_dy) (0 <= s <= 1 and 0 <= t <= 1)

新代码:

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;}}};

事实上,我只用this.EditorDocument.evaluate

替换了document.evaluate

/ end snippet