2012-10-20 46 views
1

我正在尋找一種使用jQuery在文檔元素單擊時獲取iframe的id的方法。代碼將從父窗口初始化運行。如何在jQuery中單擊iframe文檔時獲取包含iframe id的文件

$frame = $("<iframe class='frame'></iframe>").load(function(){ 
    $(this).contents().bind("click", function(e){ 
     alert($(this).attr("id")); 
    }); 
} 

警報讀取不確定

另外我也試過:

警報($(本),window.parent).attr( 「ID」);

+2

的代碼在父頁面或網頁的iFrame中運行? – charlietfl

回答

1

你會發現,當你給你的iframe邊框前面的例子僅適用上,然後點擊(即點擊iframe元素上,而不是它包含的文檔元素,我相信是你要求)。

以下代碼將mouseover處理程序綁定到iframe,該iframe在將onclick處理程序綁定到其內容之前抓取iframe的ID。請注意,這隻有在iframe指向您網站上的另一個頁面時纔有效,而不是另一個域上的另一個頁面。

$(document).ready(function(){ 

     $('iframe').bind('mouseover', function(){ 

      var iframeID = $(this).attr('id'); 

      $(this).contents().unbind(); 

      $(this).contents().bind('click', function(){ 

       alert(iframeID); 
      }); 
     }); 

    }); 
+0

我認爲它需要css已經。我仍然在click事件中未定義。這是在jsfiddle.net/UFPTX/5/這是我迄今爲止最好的嘗試http://jsfiddle.net/UFPTX/6/ – Finglish

+1

你錯過了你的iframe上的ID。試試這個版本:http://jsfiddle.net/UFPTX/8/ – Sceletia

+0

@Finglish代碼是否適合你?如果是這樣,請投票:] – Sceletia

1
$(document).ready(function(){ 
    $('iframe').click(function(){ 
    Id=$(this).attr('id'); 
    alert(Id); 
}); 
}); 
+1

你測試過了嗎? – charlietfl

+0

這仍然不適合我。我詳細闡述了我的問題 – Finglish

+0

不會工作,這就是爲什麼我問它是否被測試 – charlietfl

0

一個老問題,但我還是把答案對於那些誰仍然有這樣的問題:

HTML內容:

<iframe class='frame' id="iframe-1"></iframe> 

JQuery的牛逼Ø得到iframe的ID,而它的內容點擊:

setTimeout(function(){ 
    $('.iframe').each(function(){ 
     var _this = $(this); 
     _this.contents().find('body').focus(function(){ 
      var iframe_id = _this.attr('id'); 
      alert(iframe_id); // do whatever with it 
     }); 
    }); 
},1000); 

我希望它可以幫助...