我使用的是一个叫做" CMS“的插件,这个插件让wordpress更像CMS。尤其是http://plugins.trendwerk.nl,它将多个文本“块”添加到一个模板中,每个块都可以使用多个tinymce编辑器在post.php脚本中进行编辑。
我遇到的问题是,你只能将图像放入主编辑器或默认编辑器,根据CMS的作者的说法,唯一的解决办法是将图像放入主内容编辑器中,并将其拖到有问题的编辑器中。据推测,不可能将图像放入其中一个块编辑器。
这并不总是有效的,由于某些原因,当从一个编辑器拖放到另一个编辑器时,它使用相对链接,这会破坏网站。
我想做的是添加插入图像到单独的tinyMCE编辑框的能力。当图像被插入时,它被插入到activeEditor中。但活动编辑器始终显示为主编辑器。
当创建页面时,任何带有theEditor类的文本区都会转换为tinyMCE编辑器,人们可能会认为单击某个编辑器会将该编辑器设置为活动编辑器,但看起来并非如此。或者点击“添加图像”图标将其停用(失去焦点)。
有人知道如何设置activeEditor吗?也许当用户单击“添加图像”图标时,我可以更新活动编辑器。
发布于 2010-09-30 10:08:56
Wordpress确实改变了编辑器,不幸的是,它在保存图标的工具栏中的onclick事件中。该事件从a标记中冒出,并调用以下javascript:
if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor) {
tinyMCE.get("content").focus();
tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark("simple")
}正如您所看到的,编辑器中的“content”是硬编码的。然后,它甚至进一步冒泡到另一个脚本,该脚本打开了我需要保留此事件的媒体iframe,因此我不能只是捕获并取消该事件。
为了解决这个问题,我将上面的代码更改为if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor),这意味着如果编辑器尚未设置,则将其更改为硬编码值。
然后,在我自己的icons onclick方法中,我将编辑器更改为我选择的编辑器。
遗憾的是,这意味着我必须更改wordpress核心文件,但在插件中没有简单的方法。当然,这是可以做到的,但需要复制wordpress事件。不知道这是好事还是坏事。
我会将我所做的一切传递给插件的作者,如果他愿意的话,他可以对他的插件进行更改。
数据中心
发布于 2010-09-28 15:49:10
所有编辑器实例(对象)都可以使用
tinymce.editors; // array containing all editor objects例如,您可以将activeEditor设置为第一个编辑器,但也可以选择任何其他编辑器对象
tinymce.activeEditor = tinymce.editors[0];我建议你使用、Firebug、和console.log(tinymce.editors);来仔细看看这个。
当创建页面时,任何带有theEditor类的文本区域都会转换为tinyMCE编辑器,人们可能会假设单击某个编辑器会将该编辑器设置为活动编辑器,但看起来并非如此。或者点击“添加图像”图标将其停用(失去焦点)。
单击某个编辑器通常会使该编辑器成为活动编辑器。我想你是对的,“添加图像”按钮以某种方式改变了activeEditor。这是什么类型的按钮-它是一个tinymce UI按钮还是来自wordpress的东西?
https://stackoverflow.com/questions/3809918
复制相似问题