我正在使用tinymce编辑器提供丰富的文本格式,并且我想提供自动保存选项。我设法编写了一个完全符合这一点的脚本,但有一个问题。如果该窗口不是当前选项卡,我不想调用该保存功能,以避免不必要的保存调用。如何在使用TinyMCE编辑器时自动保存
过度使用$(window).focus()
走到这一步我,但是这似乎并没有工作,因为当TinyMCE的编辑器处于焦点(意思是我打字),则它在某种程度上窗口超出对焦范围(最有可能是因为TinyMCE的编辑器使用iFrame),因此我的定期更新功能没有被调用。
我会很容易地解决这个问题,如果有一个处理程序。 onFocus
为编辑,但似乎没有。任何人都可以建议我如何克服这个问题?下面
/* Function to be called for saving the blog */
function saveBlog(){
var ed = tinymce.activeEditor;
/* Ajax call will be done only when some changes has been made in the editor*/
if (ed.isDirty())
{
ed.save();
var link = $(this).attr("href");
var cur_elem = $(this);
cur_elem.html('saving...');
cur_elem.addClass('unclickable');
$.ajax({
type: "POST",
url: link,
data: $("#blog_form :input[name!='csrfmiddlewaretoken']").serialize(),
dataType: 'json',
success: function(){
cur_elem.html('Save');
cur_elem.removeClass('unclickable');
}
});
}
};
var interval_id;
/* Timer resumes when the window comes back in focus */
$(window).focus(function() {
if (!interval_id)
interval_id = setInterval(saveBlog, 5000);
});
/* Whenever window goes out of focus the timer is cleared */
$(window).blur(function() {
clearInterval(interval_id);
interval_id = 0;
});
/* Starts the auto saving for the first time */
$(document).ready(function(){
interval_id = setInterval(saveBlog, 5000);
});
我的代码被赋予任何人都可以帮助解决这个问题,我只需要知道什么时候TinyMCE的编辑器实例是重点,这样我就可以恢复自动保存周期函数。我可以补充说,除了$(window).focus
当您下载TinyMCE时,实际上是包含在软件包中的自动保存插件 – Tom 2012-02-28 18:37:11
该文档指出,如果用户未提交,自动保存插件仅向用户发出警告。并且ajax支持将在稍后添加http://www.tinymce.com/wiki.php/Plugin:autosave – Sachin 2012-02-29 11:19:31
哦,你是对的。对不起,没有完全阅读^^ – Tom 2012-02-29 13:21:55