Javascript 用tinyMCE获取内容?
我有一个tinyMCE textarea#frmbody,正在使用它的jquery实例Javascript 用tinyMCE获取内容?,javascript,jquery,tinymce,wysiwyg,Javascript,Jquery,Tinymce,Wysiwyg,我有一个tinyMCE textarea#frmbody,正在使用它的jquery实例 <textarea class="tinymce" name="frmbody" id="frmbody" cols="30" rows="20"></textarea> 上面的代码不起作用,我不知道为什么。如果我删除tinyMCE实例,上面的代码可以正常工作。有什么想法吗 这是因为TinyMCE的实例不是真正的textarea,所以不会检测到keyup事件。请尝试使用。您可以通过以
<textarea class="tinymce" name="frmbody" id="frmbody" cols="30" rows="20"></textarea>
上面的代码不起作用,我不知道为什么。如果我删除tinyMCE实例,上面的代码可以正常工作。有什么想法吗 这是因为TinyMCE的实例不是真正的textarea,所以不会检测到keyup事件。请尝试使用。您可以通过以下方式使tinyMCE成为自己的侦听器: 或者编写自己的并使用内置函数getContent:
编写自己的处理程序并将其分配给编辑器iframe文档非常容易。 已经为各种事件定义了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容器。如果您在框中写入内容,它将是一个iFrame,名称为
“TEXTAREANAME\u ifr”
所以试试这个:
$("#frmbody_ifr").live('keyup', function(e) {
alert("keyup");
});
我认为正如Thariama已经说过的那样,TinyMCE的EventHandler将是最好的方式。可以通过以下方式获取编辑器的内容:
tinymce.activeEditor.getContent();
如果要附加onchange事件,根据此页面,请使用以下代码创建编辑器:
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会触发,按enter键或按工具栏按钮而不是每次按键。不知道,但tinyMCE可能会创建(或重新创建)一个不同的文本区域,您可以在其中实际键入,因此
\frmbody
从来没有任何按键活动。我也这么想。我会继续挖掘和搜索。谢谢不过,唯一的另一件事是,当我检查$\u POST值时,frmbody就在那里。tinyMCE会隐藏您的文本区域并自行处理所有键入操作。当表单发布时,它会将创建的HTML复制回您的文本区域。但是,它有很多自己的事件,您可以将它们连接到其中。
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();