if语句在setInterval函数中

时间:2016-10-19 07:49:42

标签: javascript setinterval google-tag-manager

我有以下代码。我想要实现的是计算{{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;
}

0 个答案:

没有答案