我一直在寻找一个解决方案,我发现的唯一修复只会影响文本在编辑器本身的显示方式,而不会影响生成的文本在其他地方发送/保存时的外观.我正在谈论CSS修复和类似的东西.
我正在使用CKEditor通过我们的Web应用程序编写和发送电子邮件,当css修复更改编辑器本身显示的字体时,收到的电子邮件仍然显示在TNR或从电子邮件客户端继承的任何内容.当然,除非我为每个段落更改插件的字体和大小.
从我在插件中设置字体和大小时注意到,CKEditor创建了一个跨度(好吧,实际上是两个,一个带有字体,一个带有大小)和新改变的样式(例如<span style="font: Arial"><span style="font-size: 12"></span></span>)我想我可以使用我想要的字体和大小样式将整个结果包装在span或div中,但这可能会干扰用户的模板和样式.
有没有办法从插件本身设置默认文本样式(如电子邮件的收件人所见),或者我必须提出它的黑客攻击.
这是我发现迫使ck编辑器创建默认字体的唯一方法.即使没有选择任何字体,它也会将输入的文本包装在(默认)字体范围内,因此会输出格式化的文本.如果您希望更改是通用的,请将以下内容添加到config.js.否则,应该可以将它添加到一个实例中.虽然我没有尝试过.
config.font_defaultLabel = 'Arial';
Run Code Online (Sandbox Code Playgroud)
这将使下拉默认为'Arial'.虽然这甚至没有按照我希望的方式运作.首先,必须激活(不仅仅是加载)编辑器以将下拉列表设置为默认值.然后,与手动选择不同,该值不会在下拉框中突出显示.它只是显示.
然后在默认配置选项下面添加:
CKEDITOR.on( 'instanceReady', function( ev ) {
ev.editor.setData('<span style="font-family:Arial, Verdana, sans-serif;">­</span>');
});
Run Code Online (Sandbox Code Playgroud)
这将使用您需要的范围预填充文本区域.但是,您必须在span标记中包含一些字符以强制此"hack"工作.所以你会在你的输出中遇到一些你真的不想要的东西.我在网上的某个地方找到的原始版本:
­
Run Code Online (Sandbox Code Playgroud)
这似乎相对无害.
我已经寻找并寻找更好的方式(如果有人知道的话,我会很高兴).大多数人只是说捕获输出并重新格式化.这真的不适合我.也可以使用自定义插件来完成此操作.这对我来说也不是真的可行.
希望这可以帮助别人至少节省一些时间.
PS原版来自CK编辑的支持委员会.这是链接:论坛