clearTimeout无法处理keyup iFrame

时间:2014-04-04 09:49:51

标签: javascript jquery html iframe

我知道可能已经有很多这样的问题了,但我查看了其中一些问题,但我无法得到解决方案。我目前正在使用WYSIWYG编辑器,我需要在用户输入密钥时保存。

我不希望它更新每个更改,但最多每两秒更新一次。你能告诉我为什么这段代码不起作用吗?

var updatetimer;
var body=$('#iframe').contents().find('body');
body.attr('contenteditable', true);
$(body).on('keyup', function() {
    clearTimeout(updatetimer);
    updatetimer = setTimeout(function(){
        savepagetext();
    },2000);
});

它确实有效但每个键盘都会触发savepagetext()。如何正确防止这种情况?

1 个答案:

答案 0 :(得分:0)

我能够使用全局window.setTimeout()对象使用此代码解决它。谢谢你的建议!

var iframeBody = $('body', $('#iframe')[0].contentWindow.document);
iframeBody.attr('contenteditable', true);
$(iframeBody).on('keyup', function(event) {
    clearTimeout(window.updatetimer)
    window.updatetimer = setTimeout(function(){
        savepagetext();
    },2000);
});