我目前正在创建一个Joomla插件,它为任何编辑器添加一个新按钮.单击该按钮时,会出现一个模态,显示包含某些信息的表格.我想在这个模态中创建一个按钮,当它被单击时,模态将被关闭,文本(现在任何文本)将显示在编辑器中.
模态显示,按钮实现如下:
但点击它时出错:
Uncaught TypeError: Object [object Array] has no method 'execCommand' tiny_mce.js:1
j.EditorManager.d.execInstanceCommand tiny_mce.js:1
jInsertEditorText index.PHP?option=com_content&view=article&layout=edit:49
onclick
我会很乐意帮助:)
最佳答案
jInsertEditorText方法需要编辑器id作为其第二个参数.
该方法的签名是:
function jInsertEditorText( text,editor );
你应该按如下方式调用它:
jInsertEditorText('sometText','editor_id');
您需要通知您的SqueezeBox /按钮哪个编辑器要定位,或者添加一个包装器方法,该方法将针对它定位正确的编辑器.
例如,文章编辑器包含一个id为jform_articletext的编辑器.在父窗口中定义了一个名为jSelectArticle的方法,该方法获取另一篇文章的详细信息并在编辑器中添加一个链接.
function jSelectArticle(id,title,catid,object,link,lang)
{
var hreflang = '';
if (lang !== '')
{
var hreflang = ' hreflang = "' + lang + '"';
}
var tag = 'Box.close();
}
单击编辑器下的按钮时,将打开带有文章列表的SqueezeBox.每篇文章都有一个单击处理程序,它使用其属性调用该函数:
if (window.parent) window.parent.jSelectArticle(...);
我更愿意为SqueezeBox提供编辑器ID,因为它更干净,更便携.
在服务器端,插件的onDisplay方法接收表单标识符.你可以随意使用它.
public function onDisplay($name)