我正在寻找一些帮助autosaving tinyMCE的帮助。我希望在内容更新后将内容保存在各自的文本区域中。因此,当我进行ajax调用时,内容将在textarea中准备好发布。
目前我有这么一点代码,但是当你按下微小的按钮(如粗体,斜体,下划线等)时,它只会更新文本区域。我也有链接,我找到了代码。任何帮助将不胜感激。
$('.AjaxEdit textarea.tiny').tinymce({
//other init options
//need this function to save tiny data before Ajax call
//http://www.webmasterkitchen.com/article/tinymce-ajax-form-submission/
setup : function(ed) {
ed.onChange.add(function(ed) {
tinyMCE.triggerSave();
});
}
});
答案 0 :(得分:1)
你最好的选择是调整你的AJAX调用,以便在AJAX调用之前直接从TinyMCE或triggerSave中提取内容,而不是试图让textarea与编辑器内容保持同步。序列化和过滤整个文档以便将其存储在每次更改中都是一个重大的性能影响。
如果确实需要保持textarea同步,则必须将DOM修改侦听器添加到TinyMCE创建的iframe文档中以存储内容 - 您可以使用getDoc()函数(参见http://tinymce.ephox.com/documentation/api/index.html#class_tinymce.Editor.html-getDoc)。但是你会遇到重大的性能问题。
此致
Adrian Sutton
http://tinymce.ephox.com
答案 1 :(得分:1)
虽然这个问题很老,但我在搜索插件的过程中遇到了问题。最后我实现了自己的插件。
我编写了一个插件,每隔x秒就将表单数据发送到指定的url。 I have blogged it here.
简而言之,我们的想法是创建一个iframe,动态更改表单的目标和动作,并提交表单以激发ajax效果。保存后,我将表单元素置于其初始状态,这样如果用户想要手动保存,他或她就不会有任何困难。
请注意我写的插件是针对tinymce4的。对于旧版本,您必须稍微更改源代码。
答案 2 :(得分:0)
你应该看看这个自动保存插件http://code.google.com/p/tinyautosave/
答案 3 :(得分:0)
仅供参考,我这样做了:
$('textarea.wysiwyg').tinymce({
...
onchange_callback : function(inst) {
// Prints the DOM element (textarea) to the console.
console.log( inst.getElement() );
// Prints the content of tinyMCE to the console.
console.log( inst.getBody().innerHTML );
}
});