我有以下代码。我想要实现的是计算{{UTL - Visibility hidden}} == true时的秒数。 {{UTL - Visibility hidden}}是一个宏,用于确定浏览器标签是否已打开,因此会每秒检查一次,并在'时间的总和上加一秒。或者'休假'。
然而,当我运行它时,它在页面加载时处于状态,并且不会每秒检查并更改if语句。我的假设是函数运行的每一秒,评估{{UTL - Visibility hidden}} == false,并运行相关部分。
订单错了吗?有没有更有效的方法来做到这一点?
x=0
y=0
setInterval(function () {
if({{UTL - Visibility hidden}} == false){
dataLayer.push({
'event' : 'Timer test',
'time on' : x
});
x=x+1
}
else{
dataLayer.push({
'event' : 'Timer test',
'time off' : y
});
y=y+1
}}
, 1000);
宏在Google跟踪代码管理器中通过以下javascript生成:
UTL - 隐藏可见性
function() {
switch ({{UTL - Visibility prefix}}) {
case '':
return document['hidden'];
case 'moz':
return document['mozHidden'];
case 'o':
return document['oHidden'];
case 'webkit':
return document['webkitHidden'];
default:
return;
}
}
UTL - 可见性前缀
function() {
var prefixes = ['moz', 'ms', 'o', 'webkit'];
if ('hidden' in document) {
return '';
}
// Loop through each prefix to see if it is supported.
for (var i = 0; i < prefixes.length; i++) {
var testPrefix = prefixes[i] + 'Hidden';
if (testPrefix in document) {
return prefixes[i];
}
}
return;
}