1

ドキュメント要素がクリックされたときに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

4 に答える 4

1

前の例は、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);  
          });
       }); 

    });
于 2012-10-20T13:53:49.207 に答える
0

iframeにコンテンツがない場合、Dioのフィドルの例によると、http://jsfiddle.net/sameerast/FUUz9/

<iframe id="frame" class='frame' width="200" height="200"></iframe>​
于 2012-10-20T14:04:39.507 に答える
0

それは古い質問ですが、私はまだこの問題を抱えている人たちのために答えを出し続けています:

HTMLコンテンツ:

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

コンテンツをクリックしながらiframeIDを取得するJQuery:

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

お役に立てば幸いです...

于 2016-10-07T06:55:28.663 に答える
-1
$(document).ready(function(){
   $('iframe').click(function(){
   Id=$(this).attr('id');
   alert(Id);
 });
});
于 2012-10-20T12:58:41.300 に答える