用tinyMCE获取内容?

我有一个tinyMCE textarea #frmbody,我正在使用它的jquery实例。

 

我正在尝试获取textarea的内容作为用户类型。

 $("#frmbody").live('keyup', function(e) { alert("keyup"); }); 

上面的代码不起作用,我不知道为什么。 如果我删除tinyMCE实例,上面的代码工作正常。 有任何想法吗?

这是因为TinyMCE的实例不是真正的textarea,因此未检测到keyup事件。 请尝试使用onchange回调 。

你可以通过以下方式制作tinyMCE自己的监听器: http ://www.tinymce.com/wiki.php/API3:event.tinymce.Editor.onKeyUp

或编写自己的内置函数getContent: http ://www.tinymce.com/wiki.php/API3 : method.tinymce.Editor.getContent

可以使用以下方法获取编辑器的内容:

 tinymce.activeEditor.getContent(); 

如果要附加onchange事件,请根据此页面http://www.tinymce.com/wiki.php/api4:class.tinymce.Editor ,使用以下代码创建编辑器:

 var ed = new tinymce.Editor('textarea_id', { init_setting_item: 1, ... }, tinymce.EditorManager); ed.on('change', function(e) { var content = ed.getContent(); $("#textarea_id").val(content); // update the original textarea with the content console.log(content); }); ed.render(); 

请注意,当用户解除注意时,onchange就会触发,按下回车键或按工具栏按钮而不是每次按键。

编写自己的处理程序并将其分配给编辑器iframe文档非常容易。 已经定义了像keyUp这样的各种事件的tinymce处理程序

以下是将自己的处理程序分配给编辑器iframe文档的标准方法

 var my_handler = function(event) { alert('my handler fired!'); }; var ed = tinymce.get('my_editor_id'); $(ed.getDoc()).bind('keyup', my_handler); 

TinyMCE隐藏文本区域并创建一个html容器。 如果您在框中写入内容,则其名称为"TEXTAREANAME_ifr"的iFrame。

所以试试这个:

 $("#frmbody_ifr").live('keyup', function(e) { alert("keyup"); }); 

我认为Thariama已经说过来自TinyMCE的EventHandler将是最好的方式。