有没有办法在CKEditor中设置默认字体和字体大小?

时间:2012-10-30 15:26:25

标签: ckeditor

我一直在寻找一段时间的解决方案,我发现的唯一修复只会影响文本在编辑器中显示的方式,而不会影响生成的文本在其他地方发送/保存时的外观。我正在谈论CSS修复和类似的东西。

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

从我注意到,无论何时从插件中设置字体和大小,CKEditor都会使用新更改的样式创建一个span(实际上是两个,一个带有字体,一个带有大小)(例如{ {1}})我想我可以使用我想要的字体和大小样式将整个结果包装在span或div中,但这可能会干扰用户的模板和样式。

有没有办法从插件本身设置默认文本样式(如电子邮件的收件人所看到的那样),或者我必须对它进行攻击。

3 个答案:

答案 0 :(得分:8)

这是我发现迫使ck编辑器创建默认字体的唯一方法。即使没有选择任何字体,它也会将输入的文本包装在(默认)字体范围内,因此会输出格式化的文本。如果您希望更改是通用的,请将以下内容添加到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”工作。所以你会在你的输出中遇到一些你并不真正想要的东西。我在网上的某个地方发现了这个原始版本:

&shy;

这似乎相对无害。

我已经寻找并寻找更好的方式(如果有人知道,我会很高兴)。大多数人只是说捕获输出并重新格式化。这真的不适合我。也可以使用自定义插件来完成此操作。这对我来说也不是真的可行。

希望这可以帮助别人节省一些时间。

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

答案 1 :(得分:1)

如果你想改变编辑器之外的文本样式,那么你必须设计它...外部编辑器:)。电子邮件样式表中的AFAIK无法使用,因此留给您的是div包含内联样式。

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

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

答案 2 :(得分:0)

将其添加到config.js文件中

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

然后当你的CKEditor被触发时它会被改变。