2013-03-20 57 views
0

我正在與一個正在與其他人的iframes的許多工作的客戶端proyect工作。 的問題是,我想在所有的I幀自動從絕對父文檔添加的addEventListener,一個例子的模式將是這樣的:訪問每個iframe子女

Document: iframe1, iframe2 
Iframe1: iframe1.1, iframe1.2 
Iframe1.1: iframe.1.1.1, iframe 1.1.2 

我想模擬是這樣的:

iframes[i].contentWindow.document.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByTagName('iframe')[i] 

我寫了這個代碼,但我有一個「不確定」的錯誤:

window.onload=function(){ 
    eventoIframe(document,null,1); 
} 



var eventoIframe=function(target,prev_target,lvl){ 
    console.log('Ejecuto funcion por '+lvl+' vez'); 
    var iframes=target.getElementsByTagName('iframe'); 
    if(lvl>2){ 
     var iframes=prev_target.target.getElementsByTagName('iframe'); 
    } 
    if(iframes.length>0){ 
     for(var i=0;i<=iframes.length-1;i++){ 
      var iframe=iframes[i].contentWindow; 
      iframe.addEventListener("click",function(event){ 
       console.log('click on:', event.target) 
      },false); 


      eventoIframe(iframe.document,target,lvl+1); 
     } 
    } 

} 

回答

0

好吧,我發現這個錯誤,我不知道爲什麼我想知道上一個TARG et hehe 解決方案是:

window.onload=function(){ 
    eventoIframe(document); 
} 


var eventoIframe=function(target){ 
    var iframes=target.getElementsByTagName('iframe'); 

    if(iframes.length>0){ 
     for(var i=0;i<=iframes.length-1;i++){ 
      var iframe=iframes[i].contentWindow; 
      iframe.addEventListener("click",function(event){ 
       //code to be execute on each iframe 
      },false); 
      eventoIframe(iframe.document); 
     } 
    } 

}