JS - setInterval / clearInterval在if-condition

时间:2017-04-27 11:53:05

标签: javascript iframe google-tag-manager

我使用Google跟踪代码管理器,希望获取iframe元素(视频)的点击次数。访问者第一次点击iframe时,我想将特殊值推送到DataLayer(此处未包含)。

到目前为止,这是我的代码:

function (){
var monitor = setInterval(isIFrame,1000);

function isIFrame(){
    var elem = document.activeElement;
    if(elem && elem.tagName == 'IFRAME'){
    clearInterval(monitor);
    alert ("x"); //The datalayer code would go here instead
   }
return;
 }
}

检测iframe上的点击效果非常好,并且警报也正常工作,但clearInterval没有停止setInterval。

我最近开始编码,所以任何帮助都会受到赞赏。

基本上,我希望IF中的函数只运行一次 - 并且必须使用intervall,因为如果该人已经点击了(=内部是活动的)iframe,我必须每秒检查一次。由于我使用GTM,我无法将监视器定义为全局变量。

1 个答案:

答案 0 :(得分:0)

请检查控件是否进入if情况。否则就不会停止。

interval()
function interval(){
var monitor = setInterval(isIFrame,1000);
var elem = "document.activeElement";
function isIFrame(){
    if(elem && elem== 'IFRAME'){
    clearInterval(monitor);
    alert("x"); //The datalayer code would go here instead
   }
    elem = "IFRAME"
return;
 }
}

http://jsfiddle.net/Rishi0405/96nhf1x3/