gpt4 book ai didi

ruby-on-rails - 我无法让 ckeditor 允许除基本属性之外的任何内容,并且无法关闭/配置高级内容编辑器 (rails)

转载 作者:行者123 更新时间:2023-12-01 13:11:25 28 4
gpt4 key购买 nike

我在 ruby​​ on rails 应用程序上运行 ckeditor 4.1.4。高级内容编辑器似乎正在剥离基本属性以外的任何内容。

例如,如果我有一个带有“这是一个测试”的单词文档,其中“是一个测试”是粗体、红色和 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:

我尝试在 block 中添加三个配置行,但没有用。我阅读了有关将它们添加到配置 block 之外的建议,所以我尝试了。我确实重新启动了服务器,但它仍然删除了附加属性。

这是一个 Intranet 应用程序,考虑到我们的情况,我不担心内容过滤。我只希望用户能够复制和粘贴所有属性。

------ 编辑 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 语句是否应该起作用。

最佳答案

有很多方法可以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 .

关于ruby-on-rails - 我无法让 ckeditor 允许除基本属性之外的任何内容,并且无法关闭/配置高级内容编辑器 (rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857527/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com