Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 如何检测文档是否返回焦点?_Javascript_Html_Jquery_Settimeout_Jquery Events - Fatal编程技术网

Javascript 如何检测文档是否返回焦点?

Javascript 如何检测文档是否返回焦点?,javascript,html,jquery,settimeout,jquery-events,Javascript,Html,Jquery,Settimeout,Jquery Events,我使用带有隐藏属性的html5文档对象来检测用户是否切换到了另一个选项卡。如何检查用户是否以相同的方式返回到当前选项卡 请参考我的代码: var PERIOD_NOT_VISIBLE = 60000; var PERIOD_VISIBLE = 5000; var timestring = 0; (function callThis(timestring) { //update notification timer = setTimeout(fun

我使用带有隐藏属性的html5文档对象来检测用户是否切换到了另一个选项卡。如何检查用户是否以相同的方式返回到当前选项卡

请参考我的代码:

var PERIOD_NOT_VISIBLE = 60000;
var PERIOD_VISIBLE = 5000;              
var timestring = 0;

(function callThis(timestring) {

    //update notification

    timer = setTimeout(function() {

    callThis(timestring);                
    }, (document.hidden) ? PERIOD_NOT_VISIBLE : PERIOD_VISIBLE);

})();
每隔5秒更新一次通知。当当前文档失去焦点时,间隔计时器将增加到1分钟。因此,此最新请求将仅在1分钟后运行

如果用户在1分钟完成之前的任何时间返回文档,他仍然没有更新通知,因为他必须先等待当前请求完成。只有在这之后,计时器才会返回到5秒


是否可以在不等待请求完成的情况下,在1分钟后检测用户是否返回到当前文档?

您可以使用窗口中的
模糊和
聚焦事件来检测它

$(window).on("blur", function() {
   // do whatever you want
    $("body").append("<p>Windows lost focus</p>");
});
$(window).on("focus", function() {
   // do whatever you want
    $("body").append("<p>Windows got focus</p>");
});
$(窗口).on(“模糊”,函数(){
//你想干什么就干什么
$(“正文”)。追加(“窗口失去焦点”

”; }); $(窗口).on(“焦点”,函数(){ //你想干什么就干什么 $(“body”).append(“Windows获得焦点”

”; });

下面是一个工作示例(单击JSFIDLE的结果框进行测试)

您可以在窗口中使用
blur
focus
事件来检测它

$(window).on("blur", function() {
   // do whatever you want
    $("body").append("<p>Windows lost focus</p>");
});
$(window).on("focus", function() {
   // do whatever you want
    $("body").append("<p>Windows got focus</p>");
});
$(窗口).on(“模糊”,函数(){
//你想干什么就干什么
$(“正文”)。追加(“窗口失去焦点”

”; }); $(窗口).on(“焦点”,函数(){ //你想干什么就干什么 $(“body”).append(“Windows获得焦点”

”; });
下面是一个工作示例(单击JSFIDLE的结果框进行测试)

您可以这样做:您可以这样做: