我有一个tinyMCE textarea #frmbody并且正在使用它的jquery实例。
<textarea class="tinymce" name="frmbody" id="frmbody" cols="30" rows="20"></textarea>
我正在尝试以用户类型获取textarea的内容。
$("#frmbody").live('keyup', function(e) {
alert("keyup");
});
上面的代码不起作用,我不知道为什么。如果我删除tinyMCE实例,上面的代码工作正常。有任何想法吗?
答案 0 :(得分:2)
那是因为TinyMCE的一个实例不是真正的文本区域,所以没有检测到密钥事件。请改为使用onchange callback。
答案 1 :(得分:1)
您可以通过以下方式使tinyMCE拥有自己的监听器: http://www.tinymce.com/wiki.php/API3:event.tinymce.Editor.onKeyUp
或编写自己的内置函数getContent: http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.getContent
答案 2 :(得分:1)
可以使用以下方式获取编辑器的内容:
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会激活,按回车键或按工具栏按钮而不是每次按键。
答案 3 :(得分:0)
编写自己的处理程序并将其分配给编辑器iframe文档非常容易。 已经定义了各种事件的tinymce处理程序,如keyUp
以下是将自己的处理程序分配给编辑器iframe文档
的标准方法var my_handler = function(event) {
alert('my handler fired!');
};
var ed = tinymce.get('my_editor_id');
$(ed.getDoc()).bind('keyup', my_handler);
答案 4 :(得分:0)
TinyMCE隐藏文本区域并创建一个html容器。如果您在框中写入内容,则其名称为"TEXTAREANAME_ifr"
。
所以试试这个:
$("#frmbody_ifr").live('keyup', function(e) {
alert("keyup");
});
我认为Thariama已经说过来自TinyMCE的EventHandler将是最好的方式。