Jquery 检测Wordpress编辑帖子页面中的更改事件';s富文本编辑器(tinyMCE)
我如何检测编辑文章页面中的富文本编辑器发生了更改 我想要的是在用户在富文本编辑器(HTML和可视窗格)中键入内容时执行一个函数 编辑:我在HTML窗格中完成了这项工作,该窗格将tinyMCE创建的隐藏文本区域中的jQuery keyup事件关联起来,但我仍然无法在VisualTab中检测到用户输入 我正在使用Wordpress 3.2.1,我知道他们正在使用tinyMCE实现富文本编辑器功能 似乎tinyMCE使用Jquery 检测Wordpress编辑帖子页面中的更改事件';s富文本编辑器(tinyMCE),jquery,wordpress,iframe,tinymce,Jquery,Wordpress,Iframe,Tinymce,我如何检测编辑文章页面中的富文本编辑器发生了更改 我想要的是在用户在富文本编辑器(HTML和可视窗格)中键入内容时执行一个函数 编辑:我在HTML窗格中完成了这项工作,该窗格将tinyMCE创建的隐藏文本区域中的jQuery keyup事件关联起来,但我仍然无法在VisualTab中检测到用户输入 我正在使用Wordpress 3.2.1,我知道他们正在使用tinyMCE实现富文本编辑器功能 似乎tinyMCE使用iframe在富文本编辑器中构建Visual选项卡,因此我尝试了前面提到的示例,但
iframe
在富文本编辑器中构建Visual选项卡,因此我尝试了前面提到的示例,但没有任何结果
感谢您的帮助。不知道如何将此添加到WordPress,但从一个微小的角度来看,编辑器上的方法应该会有所帮助 所以你可以简单地使用
if (tinyMCE.activeEditor.isDirty()) {
//Do something
}
检查当前活动的编辑器。WordPress可能会为您提供访问编辑器实例的其他方法。最后,我通过添加以下代码片段解决了这个问题:
<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>
jQuery(函数($){
//需要超时,因为此代码运行时未初始化RTE。
setTimeout(函数(){
for(var i=0;i
Thanks感谢@HarkályGergő提示他解决这个问题:)谢谢你的帮助。这会在我的jquery代码中触发一个错误,告诉我
tinyMCE.activeEditor
为null
。现在我只需要弄清楚当编辑器内容更改时如何从您那里触发代码;)。工作完美,在WordPress 4.0和4.6上测试。另外请注意,当WordPress自动保存时,编辑器不再是“脏的”。FWIW和我知道这已经有年了,但tinyMCE。只有当用户处于可视编辑模式时,才会设置activeEditor
。请小心,当前代码仅检查active(first?)editor,你可能有多个例子你解决了这个问题吗?现在我正在寻找相同的函数。谢谢@HarkályGergő谢谢你的提示:)我忘了给这个加上我自己的观点。我添加了它对我有用的内容,希望它对您也有用。使用tinymce.editors[I]。在('NodeChange keyup',函数(…)
上挂钩所有事件。只有在TinyMCE 4中,我对更改有问题。