新打开了一个页面,需要在页面的focus事件中触发函数,代码如下:
$(function(){
var end=null;
//页面失去焦点则停止提交
$(window).blur(function(){
clearInterval(end);
});
//页面得到焦点开始提交
$(window).focus(function(){
readBegin();
end = setInterval(readEnd, 5000);
});
$(window).focus();
});
发现在页面加载之后,window没有触发focus事件,多处翻阅资料,后改为如下代码即可:
$(function(){
var end=null;
//$(window).trigger("focus");
//页面失去焦点则停止提交
$(window).blur(function(){
clearInterval(end);
});
//页面得到焦点开始提交
$(window).focus(function(){
readBegin();
end = setInterval(readEnd, 5000);
});
window.setTimeout("$(window).triggerHandler('focus');", 100);//setTimeout可解决事件触发兼容问题,triggerHandler为执行focus事件却又不会让此元素获取焦点
});
参考资料:setTimeout:http://my.oschina.net/justdo/blog/125643
triggerHandler:http://www.css88.com/jqapi-1.9/focus/