【问题标题】:Replacing content_css in TinyMCE替换 TinyMCE 中的 content_css
【发布时间】:2014-08-17 15:29:39
【问题描述】:

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

我在页面上有一个文本区域,用于编辑 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 是红色的。如果我然后切换到第二页,它们会变成蓝色(如预期的那样)。但是,如果我随后返回第一页,它们仍然是蓝色的。

如果页面以相反的方式加载,则会发生相反的情况,我会被红色卡住。

它似乎只是在 CSS 中附加了 loadCSS() 函数。

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

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

tinymce.activeEditor.content_css = []

我在更新编辑器时尝试了完全重新初始化(使用 tinymce.init()),但我仍然得到如上所述的组合 CSS。

感谢您的宝贵时间 :-)

【问题讨论】:

    标签: tinymce


    【解决方案1】:

    嗯,经过大量实验和寻找替代方案后,我发现了一些可行的方法。我希望它更加激进,涉及完全替换 TinyMCE 编辑器,而不仅仅是替换和刷新它正在使用的 CSS。

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

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

    就我而言,从我包含的原始代码来看,编辑器 ID 只是“contenteditor”(我正在使用的文本区域的 ID。

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

    tinymce.EditorManager.execCommand('mceRemoveEditor', true, 'contenteditor');
    tinymce.EditorManager.execCommand('mceAddEditor', true, 'contenteditor');
    
    tinymce.init({
            mode: "specific_textareas",
            selector: "#contenteditor",
            theme: "modern",
    .
    .
    .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多