首页 文章

我可以't get ckeditor to allow anything but basic attributes and can't关闭/配置高级内容编辑器(rails)

提问于
浏览
2

我在rails应用程序上的ruby上运行ckeditor 4.1.4 . 高级内容编辑器似乎剥离了除基本属性之外的任何东西 .

例如,如果我有一个带有'这是一个测试'的单词doc,其中'是一个测试'是粗体,红色和28点并且使用clipview显示查看剪贴板的内容

<body lang=EN-US style='tab-interval:.5in'>
<!--StartFragment-->

<p class=MsoNormal>This <b style='mso-bidi-font-weight:normal'><span
style='font-size:28.0pt;line-height:107%;color:red'>is a test</span></b><o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<!--EndFragment-->
</body>

</html>

它似乎正在拾取颜色,大小和粗体属性 .

但是,当我使用ckeditor将其粘贴到文本区域并查看ckeditor中的源代码时,我明白了

<p>This <strong>is a test</strong></p>

除了strong之外的属性已被删除 .

我在表格上的身体标签是

<div class="field">
      <%= f.label :body %><br>
      <%= f.cktext_area :body,  :rows => 80, :cols => 120 %>
    </div>

我已进入C:\ Ruby200 \ lib \ ruby \ gems \ 2.0.0 \ gems \ ckeditor-4.1.4 \ app \ assets \ javascripts \ ckeditor \ config.js并添加

config.allowedContent = true;
config.extraAllowedContent = '*(*);*{*}';
config.removeFormatAttributes = '';

CKEDITOR.editorConfig = function( config )
{
  // Define changes to default configuration here. For example:

我尝试在块内添加三个配置行,但是没有用 . 我读了一个关于在配置块之外添加它们的建议,所以我尝试了 . 我确实重新启动了服务器,但它仍然删除了其他属性 .

这是一个内部网应用程序,鉴于我们的情况,我并不担心内容过滤 . 我只希望用户能够复制并粘贴所有属性 .

------编辑1

我查看了页面的来源并查看

//<![CDATA[
(function() { if (typeof CKEDITOR != 'undefined') { if (CKEDITOR.instances['document_body'] == undefined) { CKEDITOR.replace('document_body', {"allowedContent":true}); } } else { setTimeout(arguments.callee, 50); } })();
//]]>
</script>

我不确定allowedContent语句是否应该正常工作 .

1 回答

  • 10

    configure CKEditor有很多种方法,但最简单的方法是将对象作为第二个参数传递给 CKEDITOR.replace (正如你在上一段代码中所示) .

    但是 allowedContent: true 可能不足以启用粘贴任何内容,因为在CKE中还有粘贴过滤器,默认情况下在Chrome和Safari中启用 . 如果您正在使用该浏览器,CKE将剥离所有类,样式和 divspan 元素 . 要禁用该行为,还应将 pasteFilter 选项设置为 null

    var editor = CKEDITOR.replace( 'editor', {
        allowedContent: true,
        pasteFilter: null
    } );
    

    如果您不想搞乱配置CKE,您还可以动态禁用粘贴过滤器:

    editor.on( 'instanceReady', function() {
        editor.pasteFilter.disable();
    } );
    

    但是,禁用该过滤器可能会导致生成非常混乱的HTML,因此请注意!

    有关膏体过滤器的更多信息,请参见official documentation .

    • -编辑:

    请注意,如果您主要使用Word粘贴,则还有专用于该情况的配置选项:pasteFromWordRemoveFontStylespasteFromWordRemoveStyles .

相关问题