Javascript 将内容插入Wordpress post编辑器
我正在制作一个Wordpress插件,用于在帖子中添加图像地图。目前,我已经实现了一个自定义的post类型的图像映射。然而,我在帖子中添加它们时遇到了一些麻烦 我在“媒体插入/上载”窗口中创建了一个名为“图像映射”的新选项卡。单击选项卡中的图像贴图时,将启动此功能:Javascript 将内容插入Wordpress post编辑器,javascript,wordpress,tinymce,Javascript,Wordpress,Tinymce,我正在制作一个Wordpress插件,用于在帖子中添加图像地图。目前,我已经实现了一个自定义的post类型的图像映射。然而,我在帖子中添加它们时遇到了一些麻烦 我在“媒体插入/上载”窗口中创建了一个名为“图像映射”的新选项卡。单击选项卡中的图像贴图时,将启动此功能: function insertImageMap() { tinyMCE.execInstanceCommand('mceInsertContent', false, 'content', 'some text or
function insertImageMap() {
tinyMCE.execInstanceCommand('mceInsertContent', false, 'content',
'some text or html code'
);
window.parent.tb_remove();
}
但是,tinyMCE编辑器中没有添加任何内容。函数被激发,但tinyMCE编辑器的实例未定义,即使我使用tinyMCE.getInstanceById('content')。有没有办法访问post editor页面的编辑器
我的插件中包含了tinyMCE脚本,它不会显示为未定义
我发现一个老问题问同样的问题,但答案并没有太大帮助:
在注释中找到解决方案:
function insertImageMap() {
window.parent.send_to_editor('any text');
window.parent.tb_remove();
}
我认为这是因为弹出窗口实际上是一个iframe。因此,为了访问
tinyMCE
实例,您需要通过window.opener
或window.parent
获取它(我不能100%确定它是否是其中的任何一个或其他东西)。因此,您可以执行var instance=window.opener.tinyMCE | | window.parent.tinyMCE;execInstanceCommand('mceInsertContent',false,'content','some text或html代码')代码>。此外,您还可以查看源代码(很可能是JS),了解WordPress是如何将内容发送到编辑器的。您实际尝试过吗?嗯,脚本实际上并没有在iframe中运行。我可以访问tinyMCE本身的实例,但不能使用tinyMCE.getInstanceById()访问post editor。但是您说您在媒体上载弹出窗口中添加了一个新选项卡,并且该选项卡加载到iframe中。除非你正在做一些非常奇怪的事情,否则它应该在一个iframe中。请尝试窗口。将\u发送到\u编辑器('content to to to to editor here')
并告诉我它是否有效。啊,是的,我误解了什么。我以前测试过send_to_editor,但它没有定义。Window.parent.send_to_编辑器完成了这个任务。当你错过这样明显的解决方案时,感觉很棒。谢谢