为什么TinyMCE添加dir =" ltr"到我所有粘贴的标签

时间:2014-06-06 19:02:18

标签: javascript jquery tinymce

我是一个使用TinyMCE的网站。我不知道为什么,但是如果我从Google doc文件(或任何其他来源)中选择一个文本并将其粘贴到我的TinyMCE中,当我更改为"查看来源"它显示了dir =" ltr"在每个标签。但是,如果我在TinyMCE主页的编辑器中粘贴相同的文字,则不会发生。

任何想法......?

编辑1:如果需要,请在此处测试此行为:http://freeonlinehtmleditor.com/。尝试从GDoc文件中选择几个段落并将其粘贴到那里。然后看看来源。之后在http://www.tinymce.com/

中进行相同的操作

3 个答案:

答案 0 :(得分:2)

Google文档支持LTR(从左到右编辑)和RTL(从右到左编辑)。 RTL适用于希伯来语和阿拉伯语 https://support.google.com/docs/answer/65166?hl=en

从2013年10月起,TinyMCE也开始支持RTL。 https://github.com/tinymce/tinymce/commit/a60b5328499254e28342614ebedab591137efcbe

当您将段落从Google文档复制到TinyMCE时,TinyMCE会将其LTR / RTL属性保留为directionality类。
http://www.tinymce.com/wiki.php/Configuration:directionality

<小时/> 修改

为避免这种情况,您可以添加paste插件,如下所示:

tinymce.init({
    selector: "textarea",
    plugins: ["paste code moxiemanager"]
});

要将其与“无粘贴”版本进行比较,您可以这样:

tinymce.init({
    selector: "textarea",
    plugins: ["code moxiemanager"] // without 'paste'
});

paste的文档在这里:http://www.tinymce.com/wiki.php/Plugin3x:paste

<小时/> 注意:

当您看到http://www.tinymce.com/的源代码时,TinyMCE初始化如下。您可以在paste部分的第3行找到plugins:[ ]一词:

tinymce.init({
    selector: "textarea",
    plugins: [
        "advlist autolink lists link image charmap print preview anchor",
        "searchreplace visualblocks code fullscreen",
        "insertdatetime media table contextmenu paste moxiemanager"
                                                ^^^^^
    ],
    toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter 
         alignright alignjustify | bullist numlist outdent indent | link image",
    autosave_ask_before_unload: false,
    max_height: 200,
    min_height: 160,
    height : 180
});

希望这有帮助。

答案 1 :(得分:0)

最简单的方法是从Google Docs编辑器中清除文字格式,或者只是将其复制并粘贴到任何txt编辑器中,然后再粘贴到TinyMCE

答案 2 :(得分:0)

我无法快速将粘贴插件添加到TinyMCE配置中;我正在使用Voyager插件在Laravel中工作,TinyMCE是Voyager管理界面的一部分,因此我的环境可能比其他人的环境更具限制性。但是,我有一个同样的问题:TinyMCE正在用我不认为需要的属性以及我的模板文件中未包含的属性来使我的HTML混乱(因此我的HTML现在既混乱又不一致)。

我通过限制TinyMCE允许包含的标签来消除TinyMCE输出的方向性。在我的voyager_additional.js文件(已将其连接到config / voyager.php中的Voyager)中,我添加了:

function tinymce_setup_callback(editor)
{
    editor.settings.valid_elements = "a[href|target=_blank],strong/b,div[align],br,h2,h3,ul,li";

    // other code...

}

并且因为我没有明确允许dir属性,所以它们消失了。此解决方案还有一个好处,就是可以防止我的编辑者添加37个H1标签或其他我希望他们没有做的事情。