首页 > 解决方案 > 在页面加载时强制 document.hasFocus 为 true

问题描述

我使用document.hasFocus()下面代码中的方法向 Google Analytics 发送事件,告诉我文档聚焦多长时间。

var count = 0;

var intervalToken = setInterval(function(){
if(document.hasFocus()){
count = count   1;
if(count === 1){
gtag('event', '1 seconds', {'event_category': 'TimeOnPage'});
}
if(count === 5){
gtag('event', '5 seconds', {'event_category': 'TimeOnPage'});
}
if(count === 10){
gtag('event', '10 seconds', {'event_category': 'TimeOnPage'});
clearInterval(intervalToken);
}
}
}, 1000);

适用于 Windows 和 Android 的 Chrome。当用户登陆我的页面时,document.hasFocus()返回true,问题出在其他一些浏览器上,例如三星互联网和 Android 的 Instagram 和 Facebook 应用程序的内置浏览器(未在 iOS 上测试)。

这些浏览器的问题是当用户登陆我的页面时,该document.hasFocus()方法返回false,仅true当用户触摸页面的某些部分时才返回。

我认为可以解决这个问题的方法是在用户登陆我的页面后强制document.hasFocus()以某种方式返回,并且在用户采取任何返回的操作(如最小化或单击文档外部)之前,它一直存在。truetruefalse

有可能的?如果是这样,怎么做?

标签: javascript

解决方案


推荐阅读