2012-10-30 187 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被觸發就會被改變。

相關問題