替换TinyMCE中的content_css

时间:2014-08-17 15:29:39

标签: tinymce

有没有办法替换TinyMCE中的content_css?

我在一个页面上有一个textarea用于编辑HTML内容,该内容使用从服务器调用返回的内容从链接列表动态加载,如下所示:

tinymce.get('contenteditor').setContent(json.content);

我还需要在TinyMCE编辑器中更改不同页面的CSS。我在setContent:

之前做了以下事情
tinymce.activeEditor.dom.loadCSS("tinyMCECSS?cssid=" + json.cssId);

不幸的是,这只是将已提供的CSS添加到已加载的内容中。例如。如果第一页CSS有

h1 {color: red;}

,第二页有:

h1 {color: blue;}

如果我加载第一页,则h1为红色。如果我然后切换到第二页,它们会变为蓝色(如预期的那样)。但是,如果我回到第一页,它们会保持蓝色。

如果页面反过来加载,那么相反的情况发生了,我就会被红色困住。

它似乎只是使用loadCSS()函数附加了CSS。

在我用第二个文件替换之前,有没有办法删除第一个CSS的 所有

我已尝试清除content_css值,但它不起作用,我认为这不是正确的: - )

tinymce.activeEditor.content_css = []

我在更新编辑器时尝试完全重新初始化(使用tinymce.init()),但我仍然按上述方法获得组合CSS。

感谢您的时间: - )

1 个答案:

答案 0 :(得分:1)

嗯,经过大量的实验和寻找替代方案后,我发现了一些有效的方法。我希望并且完全取代TinyMCE编辑器而不仅仅是更换和刷新它使用的CSS,这有点激进了。

答案基本上描述于: How do i remove tinyMCE and then re-add it?

但是,就像许多答案一样,它留下了一个令人讨厌的部分,这就是如何找到神奇的" editor_id"值。

在我的情况下,根据我所包含的原始代码,编辑ID只是' contenteditor' (我使用的textarea的ID。

因此,总而言之,我在需要更新时使用以下代码:

tinymce.EditorManager.execCommand('mceRemoveEditor', true, 'contenteditor');
tinymce.EditorManager.execCommand('mceAddEditor', true, 'contenteditor');

tinymce.init({
        mode: "specific_textareas",
        selector: "#contenteditor",
        theme: "modern",
.
.
.