有没有办法替换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。
感谢您的时间: - )
答案 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",
.
.
.