如何在jquery中单击iframe文档时获取包含iframe id

时间:2012-10-20 12:54:59

标签: javascript jquery iframe

我正在寻找一种方法来使用jQuery在单击其文档元素时获取iframe的id。代码将从父窗口初始化运行。

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

警报显示为未定义

或者我也尝试过:

alert($(this),window.parent).attr(“id”);

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您会注意到前一个示例仅在您为iframe提供边框并单击该边框时起作用(即单击iframe元素,而不是单击它包含的文档元素,我认为这就是您要求的内容)。

以下代码将鼠标悬停处理程序绑定到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);  
          });
       }); 

    });

答案 2 :(得分:0)

没有iframe的内容,根据Dio的例子,小提琴如下,http://jsfiddle.net/sameerast/FUUz9/

<iframe id="frame" class='frame' width="200" height="200"></iframe>​

答案 3 :(得分: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);

我希望它有所帮助...