将图像插入wordpress中的多个tinyMCE编辑器

时间:2010-09-28 05:25:36

标签: wordpress tinymce

我正在使用一个名为“CMS”的wordpress插件,它是一个插件,使wordpress更像CMS。 http://plugins.trendwerk.nl 特别是它为模板添加了多个文本“块”,每个都可以使用多个tinymce编辑器在post.php脚本中进行编辑。

我遇到的问题是,您只能将图像放入主编辑器或默认编辑器中,根据CMS的作者,唯一的解决方法是将图像放入主内容编辑器并将其拖动到相关编辑器中。据说不可能将图像放入其中一个块编辑器中。

这并不总是有效,出于某种原因,当从一个编辑器拖放到另一个编辑器时,它会使用相对链接,这会破坏网站。

我想要做的是添加将图像插入各个tinyMCE编辑框的功能。 插入图像后,它将插入activeEditor。但是主动编辑器似乎总是主编辑。

当创建页面时,任何带有theEditor类的textarea都会被转换为tinyMCE编辑器,人们会假设单击编辑器然后将该编辑器设置为活动编辑器,它似乎不会。或者单击“添加图像”图标将其取消激活(失去焦点)。

有谁知道如何设置activeEditor?也许当用户点击“添加图像”图标时,我可以更新活动编辑器。

2 个答案:

答案 0 :(得分:2)

Wordpress确实更改了编辑器,遗憾的是它在工具栏中的onclick事件中保存了图标。事件从a标签冒泡并调用以下javascript:

if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor) {
      tinyMCE.get("content").focus();
      tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark("simple")
}

正如您所看到的,编辑器“内容”被硬编码到其中。 然后它进一步冒泡到另一个脚本打开媒体iframe我需要保持这个事件所以我不能捕获和取消事件。

要解决此问题,我将上述内容更改为if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor),这意味着如果尚未设置编辑器,则将其更改为硬编码值。

然后在我自己的图标onclick方法中,我将编辑器更改为我选择的一个。

可悲的是,这意味着我必须更改wordpress核心文件,但在插件中没有简单的方法。它当然可以完成,但需要复制wordpress事件。不确定这是好事还是坏事。

我将把我所做的事情传递给插件的作者,如果他这样选择,他可以对他的插件进行更改。

DC

答案 1 :(得分:0)

可以使用

找到所有编辑器实例(对象)
tinymce.editors; // array containing all editor objects

您可以将activeEditor设置为第一个编辑器,但您可以选择任何其他编辑器对象

tinymce.activeEditor = tinymce.editors[0];

我建议你使用 Firebug console.log(tinymce.editors); 来仔细研究一下。

  

当页面创建任何textarea时   与theEditor类转换   对于一个tinyMCE编辑器,人们会认为   然后单击编辑器将设置   那个编辑器给主动编辑器吧   似乎没有。或者替代地   单击“添加图像”图标   停用它(失去焦点)。

单击编辑器通常会使该编辑器成为活动编辑器。我认为你是对的,“添加图像”按钮以某种方式改变了activeEditor。这是什么样的按钮 - 它是一个简单的UI按钮还是来自wordpress的东西?

相关问题