是否可以动态更改ckeditor实例的加载样式表?
即。我有一个ckeditor实例与以下配置: CKEDITOR.replace('_ content',{“resize_enabled”:true,“customConfig”:“/ kmt / js / ckeditor_config.js”,“contentsCss”:“/ custom / ckeditorstyle.css”,“contentWidth”:“240” });
不是很复杂。之后我想让用户动态更改contentscss属性......
答案 0 :(得分:4)
您可以将this SO question(如何在运行时动态添加样式表)的答案中给出的代码与接受的answer to this SO question(如何访问CKEditor的body
元素结合起来JavaScript中的实例)。
答案 1 :(得分:3)
Thanx to Pekka,我通过以下方式实现了解决方案:
$('#stylesheeetSelector').change(function() {
$.post('/getStylesheet', {id: $(this).val()}, function(data) {
for(i in CKEDITOR.instances) {
var linkElement = $(CKEDITOR.instances[i].document.$).find('link');
if (data.editorStylesheet > 0) {
if (linkElement.length == 0) {
$(CKEDITOR.instances[i].document.$).find('head').append('<link rel="stylesheet" type="text/css" href="'+ data.editorStylesheet +'">');
} else {
linkElement.attr('href', data.editorStylesheet)
}
} else if (linkElement.length > 0) {
linkElement.remove();
}
}
});
});
它的工作原理是获取一个JSON对象,该对象填充了样式表URL(最重要的是其他东西),并设置(或删除,如果没有)选定的样式表......
干净简单!