1

如果我从 word doc 复制 + 粘贴,那很好,并且它会产生足够接近精确的副本。

如果我在 iframe 中显示内容(以防止 css 干扰),它会与在编辑器中的显示完全相同。

如果我这样做:

tinyMCE.execCommand("mceReplaceContent",false, $("#frameBody").contents().find("#txtBody").html());

它将它复制到 tinyMCE 窗口中,但格式有点不同。项目符号点是空心圆圈而不是常规圆圈,并且有相当多的额外间距。

知道如何解决这个问题吗?

我正在像这样创建我的 tinyMCE:

tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,iespell,inlinepopups,insertdatetime,searchreplace,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

        // Theme options
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,code,|,insertdate,inserttime,|,forecolor,backcolor",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",

        // Skin options
        skin : "o2k7",
        skin_variant : "silver",
});

<textarea name='FishBody' style='width:919px; height:600px' id='txtFishBody'></textarea>
4

3 回答 3

2

我已经修复了它,事实证明这是拉取 html 的方式的问题。

本质上,当您保存此 html 时:

<div>
Hello
</div>

你最终得到

<div>\r\nHello\r\n<div>

我通过替换 \r\n 来反驳这一点,<br/>但似乎没有必要 - 额外的<br>标签使它感到困惑。我将其更改为\r\n用空字符串替换,所有问题都解决了:)

于 2012-04-13T13:15:30.200 回答
1

像大多数 rte 一样的 tinymce 编辑器使用标准 css 作为其编辑器 iframe。这就是子弹看起来不同的原因。外观不同的另一个原因可能是清理功能删除了无效的 html 元素和属性(您可能希望仔细查看 tinymce 配置设置valid_elementsvalid_children)。

于 2012-04-13T09:46:36.363 回答
0

你可以试试这个选项

paste_retain_style_properties: all --OR "color font-size" 无论你想包括什么

示例:复制粘贴具有其他选项的我的代码,以防万一

tinymce.init({
            selector: 'textarea',
            width: "100%",
            height : "250",
            encoding: "xml",
            menubar: false,
            statusbar: false,
            color_cols: "5",
            setup: function (ed) {
                ed.on('init', function () {
                    this.getDoc().body.style.fontSize = '10pt';
                    this.getDoc().body.style.fontFamily = 'Arial';
                });
            },
            theme: "modern",
            browser_spellcheck: true,
            plugins:
            [
                "table paste textcolor"
            ],
            paste_retain_style_properties: "all",
            toolbar1: "undo redo | bold italic underline strikethrough | fontsizeselect fontselect | alignleft aligncenter alignright alignjustify",
            toolbar2: "copy cut paste | bullist numlist outdent indent | forecolor backcolor | searchreplace | table"
        });

参考:https ://www.tiny.cloud/docs/plugins/paste/

于 2019-10-23T19:13:14.837 回答