2013-04-18 34 views
0

我將ck編輯器(最新版本4.1)嵌入到dj browswer中。 dj browser在djbrowser中動態設置外部css到ck編輯器

我想在ck編輯器中設置一個外部css文件(http://mystyle.css)。

但我不想修改或編輯ck編輯器的配置文件。 css的url應該在運行時動態設置,它的名字和url可以改變。

我試過的是調用下面的命令,但沒有幫助。

CKEDITOR.stylesSet.add('mystyle'); 
.. 
CKEDITOR.config.stylesSet('mystyle:http://mystyle.css'); 
+0

你能澄清這個問題嗎?你是否需要插入一個CSS文件來爲編輯器中的內容提供自定義樣式,或者是否要將自定義項目/選擇添加到樣式集下拉菜單中? – Nenotlep

+0

我想設置一個css文件,它將爲編輯器中的內容提供自定義樣式。但是css文件將通過url到達。 – benchpresser

回答

2

它們的關鍵是訪問CKE iframe的文檔對象。然後,您只需將一個CSS鏈接吐到文檔的頭部,而無需觸摸配置。例如從https://stackoverflow.com/a/577002/694325

我假設你用「editor1」的名字,但無論你使用..

var doc = CKEDITOR.instances.editor1.document.$; // get CKE doc! 
var cssId = 'myCss'; 
if (!doc.getElementById(cssId)) 
{ 
    var head = doc.getElementsByTagName('head')[0]; 
    var link = doc.createElement('link'); 
    link.id = cssId; 
    link.rel = 'stylesheet'; 
    link.type = 'text/css'; 
    link.href = 'http://my.little.pony.net/Your.css'; 
    link.media = 'all'; 
    head.appendChild(link); 
} 

或者你可以jQuery的,如果你是到那種東西(https://stackoverflow.com/a/2685661/694325

var doc = CKEDITOR.instances.editor1.document.$; // shortcut 
$("<link/>", { 
    rel: "stylesheet", 
    type: "text/css", 
    href: "http://my.little.pony.net/Your.css" 
}).appendTo($(doc).find("head"));