2017-04-27 54 views
0

我使用Google跟蹤代碼管理器並希望捕獲對iframe元素(視頻)的點擊。訪問者第一次點擊iframe時,我想將特殊值推送到DataLayer(此處未包括)。JS - setInterval/clearInterval if-condition內部不起作用

這是我到目前爲止的代碼:對I幀

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; 
} 
} 

檢測點擊完美的作品,並警告工作爲好,但的setInterval沒有被clearInterval停止。

我最近開始編碼,所以任何幫助將不勝感激。基本上,我希望IF內部的函數只運行一次 - 並且必須使用intervall,因爲我必須檢查每個人是否已經點擊了iframe中的內容(=內部活動)。由於我使用GTM,因此我無法將監視器定義爲全局變量。

+0

你試過'clearInterval(這)'? – Mazz

+0

謝謝 - 是的,但它也不起作用。 – jonasMy

回答

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/