Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用tinyMCE获取内容?_Javascript_Jquery_Tinymce_Wysiwyg - Fatal编程技术网

Javascript 用tinyMCE获取内容?

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事件。请尝试使用。您可以通过以

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

<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();