2012-10-30 184 views
4

我一直在寻找一个解决方案,现在我发现的唯一修复只会影响文本在编辑器中的显示方式,而不会影响生成的文本在发送/保存到别处时的样子。我正在谈论CSS修复和类似的东西。有没有办法在CKEditor中设置默认字体和字体大小?

我使用CKEditor通过我们的Web应用程序撰写和发送电子邮件,而css修复程序更改了编辑器本身显示的字体,收到的电子邮件仍然显示在TNR或从电子邮件客户端继承的任何内容中。当然,除非我为每个段落更改插件的字体和大小。

从我注意到的每当你从插件中设置字体和大小时,CKEditor用新改变的样式创建一个范围(呃,实际上是两个,一个是字体,另一个是大小) <span style="font: Arial"><span style="font-size: 12"></span></span>),我想我可以用span或div来包裹整个结果,并使用我想要的字体和大小样式,但这可能会影响用户的模板和样式。

有什么方法可以从插件本身设置默认的文本样式(如电子邮件的收件人所看到的),还是我必须想出一个黑客来。

回答

7

这是我发现强制ck编辑器创建默认字体的唯一方法。即使没有选择字体,IE也会以(默认)字体宽度包装输入的文本,因此会输出格式化的文本。如果您希望更改具有通用性,请将以下内容添加到config.js中。否则,它应该可以添加到只有一个实例。虽然我没有尝试过。

config.font_defaultLabel = 'Arial'; 

这将使下拉菜单默认为'Arial'。虽然这样做并不按我希望的方式工作。首先,编辑器必须激活(不只是加载),以便下拉到默认值。然后,与手动选择不同,该值在下拉框中不突出显示。它只是显示。

然后添加此下方的默认配置选项:

CKEDITOR.on('instanceReady', function(ev) { 
    ev.editor.setData('<span style="font-family:Arial, Verdana, sans-serif;">&shy;</span>'); 
}); 

这将预填充你需要的跨度文本区域。然而,你必须在span标签中包含一些字符来强制这个'hack'工作。所以,你要在你的输出的东西被卡住你真的不want.The的这个原始版本我发现某处使用的网站:

&shy; 

这似乎相对无害的。

我看过并寻找更好的方法(如果有人知道的话,会爱上)。大多数人只是说捕捉输出并重新格式化它。这对我来说不是一种选择。也可以使用自定义插件完成此操作。这对我来说也不是真正可行的。

希望这可以帮助某人至少节省一些时间。

P.S.原文来自CK编辑的支持委员会。这里是链接:forum

+0

非常感谢你,这实际上是唯一对我有用的解决方案。尝试配置content.css并没有做任何事情,添加其他选项也没有!这实际上是工作,对我来说唯一的方法! – Preexo

+0

尺寸大小 –

0

如果你想改变编辑器以外的文本风格,那么你必须对它进行风格化...编辑:)。电子邮件样式表中的AFAIK无法使用,所以留给你的东西包装在div内嵌样式中。

要在CKEditor中得到相同的结果,您应该编辑contents.css并为body设置与div包装相同的样式。

下一步将从工具栏中删除格式组合,因为它基于标记。对于电子邮件,使用样式组合会更好,因为您可以定义应用于每种样式的内联样式,标签和属性。检查styles.js

0

添加这个到您的config.js文件

CKEDITOR.config.font_defaultLabel = 'Arial'; 
CKEDITOR.config.fontSize_defaultLabel = '20'; 

那么当你的CKEditor被触发就会被改变。

相关问题