我在 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> </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 将去除所有类、样式以及 div
和 span
元素。要禁用该行为,您还应该将 pasteFilter
选项设置为 null
:
var editor = CKEDITOR.replace( 'editor', {
allowedContent: true,
pasteFilter: null
} );
如果你不想弄乱配置 CKE,你也可以即时禁用粘贴过滤器:
editor.on( 'instanceReady', function() {
editor.pasteFilter.disable();
} );
然而,禁用该过滤器会导致生成非常困惑的 HTML,因此请注意!
有关粘贴过滤器的更多信息,请参阅 official documentation .
---编辑:
请注意,如果您主要从 Word 进行粘贴,那么还有专用于这种情况的配置选项:pasteFromWordRemoveFontStyles
和 pasteFromWordRemoveStyles
.
关于ruby-on-rails - 我无法让 ckeditor 允许除基本属性之外的任何内容,并且无法关闭/配置高级内容编辑器 (rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857527/