在Wordpress编辑帖子页面的富文本编辑器(tinyMCE)中检测更改事件

时间:2011-08-16 02:28:09

标签: jquery wordpress iframe tinymce

如何检测“编辑帖子”页面中的富文本编辑器是否有更改?

我想要的是当用户在富文本编辑器(HTML和Visual窗格)中键入内容时执行一个函数。

编辑:我在HTML窗格中完成了在tinyMCE创建的隐藏文本区域中关联jQuery keyup事件,但我仍然无法在Visual选项卡中检测用户输入。

我正在使用Wordpress 3.2.1,我知道他们正在使用tinyMCE来实现富文本编辑器功能。

似乎 tinyMCE 使用iframe在富文本编辑器中构建 Visual 标签,因此我尝试了指向here的示例任何结果。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:2)

不确定如何将其添加到WordPress,但从TinyMCE的角度来看,编辑器上的isDirty()方法应该有所帮助。

所以你可以简单地使用

if (tinyMCE.activeEditor.isDirty()) {
  //Do something
}

检查当前活动的编辑器。 WordPress可能会为您提供访问编辑器实例的其他方法。

答案 1 :(得分:2)

最后,我通过添加此代码段来解决此问题:

<script type="text/javascript">
    jQuery(function ($) {
        // Was needed a timeout since RTE is not initialized when this code run.
        setTimeout(function () {
            for (var i = 0; i < tinymce.editors.length; i++) {
                tinymce.editors[i].onChange.add(function (ed, e) {
                    // Update HTML view textarea (that is the one used to send the data to server).
                    ed.save();
                });
            }
        }, 1000);
    });
</script>

向@HarkályGergő致谢,提示他解决这个问题:)