在djbrowser中动态设置外部css到ck编辑器

时间:2013-04-18 11:17:37

标签: javascript html css browser ckeditor

我将ck编辑器(最新版本4.1)嵌入到dj browswer中。 dj browser

我希望将外部css文件(http://mystyle.css)设置到ck编辑器中。

但我不想修改或编辑ck编辑器的配置文件。应该在运行时动态设置css的url,并且可以更改其名称和url。

我尝试的是调用以下命令,但没有帮助。

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

1 个答案:

答案 0 :(得分: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"));