2017-02-20 67 views
1

我試圖跟蹤點擊我的網站上的iframe。到目前爲止,此代碼正在工作,並且每次在iframe上發生點擊時都會觸發該代碼。使用JavaScript跟蹤點擊不同的內聯框架

var monitor = setInterval(function() { 
    var elem = document.activeElement; 
    if(elem && elem.tagName == 'IFRAME'){ 
     alert('click on iframe'); 
     clearInterval(monitor); 
    } 
}, 500); 

現在我想要做的是觸發基於哪個iframe被點擊的不同動作。由於我無法控制類或id的iframes可能有我需要依靠我的控制下的父div,所以我想嘗試這樣的東西,目前不工作。

var monitor = setInterval(function() { 
    var elem = document.activeElement; 
    if(elem && elem.tagName == 'IFRAME'){ 
     if ($elem.parents('.ad_left').length) { 
      alert('this is an ad left iframe'); 
     } 
     else if ($elem.parents('#youtube').length) { 
      alert('this is a youtube iframe'); 
     } 
     else() { 
      alert('click on different iframe'); 
     } 
     clearInterval(monitor); 
}, 500); 

這不可能或缺少我錯過了什麼嗎?

回答

0

我設法得到它的工作,這是我用來檢查網絡連接iframe的任何祖先包含基於某個特定類和執行不同的操作代碼:

var monitor = setInterval(function() { 
    var elem = document.activeElement; 
    if(elem && elem.tagName == 'IFRAME'){ 
     if (elem.closest('.class_one') !== null) { 
      alert('this iframe has a parent with class class_one'); 
     } 
     else if (elem.closest('.class_two') !== null) { 
      alert('this iframe has a parent with class class_two'); 
     } 
     else if (elem.closest('.class_three') !== null) { 
      alert('this iframe has a parent with class class_three'); 
     }  
     clearInterval(monitor); 
    } 
}, 500);