为什么我的jQuery插件没有在我的页面上找到TinyMCE编辑器?

时间:2016-11-15 20:34:39

标签: jquery joomla jquery-plugins tinymce

我目前正在开发一个网站,其中包含一些页面上的TinyMCE编辑器。网站本身正在运行,编辑器显示在正确的页面上。

我还在开发一个jQuery插件,该插件应该将事件绑定到页面上的DOM元素以处理事件,例如更改和单击。其中一些事件也是特定于TinyMCE编辑器的,这是问题的发生地。

我编写的jQuery插件在简单的环境中工作得很好,在静态页面上只有HTML,但是当我将它移动到我正在开发的网站时,TinyMCE事件并没有受到约束。后来我发现tinymce.editors是一个空数组,即使在带有编辑器的页面上也是如此。为了澄清,编辑器显示在页面上,但我的插件找不到它,因此tinymce.editors是一个空数组。

为什么会这样?插件代码作为JS脚本标记包含在该页面上,并且在页面上tinymce.init()调用发生后,它被放置在body标记的底部。

更多背景信息:该网站在Joomla 3.6上运行,其中TinyMCE作为插件安装。在撰写本文时,两者都是最新的。我还注意到,在使用站点的admin部分在Jommla插件中保存类之后,插件不会将自定义CSS类添加到TinyMCE编辑器。这可能是我尝试解决的插件问题的相关问题吗?另外需要注意的是,关于常规输入和其他元素的事件正常工作,因此只有TinyMCE目前给我提出问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我能解决自己的问题。在我的jQuery插件被调用之前,TinyMCE编辑器没有完全初始化,因此编辑器数组是空的。我将插件代码包装在setTimeout块中,并且能够解决问题,即使延迟时间为0毫秒。