jquery,从iframe访问父级

时间:2012-10-11 12:27:15

标签: jquery iframe

我有这段代码:

  $(document).keyup(function(e) { 
     if (e.keyCode == 27 && $('#dropdown-themes2').is(":visible")) {
       $('#dropdown-themes2').hide();
    }
    if (e.keyCode == 27 && $('#style-inner').is(":visible")) {
       $('#style-inner').hide("slide", { direction: "left" }, 100);
       $('#panel-opener').animate({left:"0"}, 100).css({'background-image':'url(img/gear.png)',
               'background-color':'#fff'}).attr('title','Open');
    }
  });

因此,在按ESC时,一个项目应该滑动(关闭)。当我在父母身边时它的工作正常。但是当我点击并在iframe内部工作时,ESC无效。 现在这有意义,因为我需要以某种方式从iframe内部访问父元素。所以我尝试添加parent.document,因此代码将是:

  $(document).keyup(function(e) { 
     if (e.keyCode == 27 && $('#dropdown-themes2',parent.document).is(":visible")) {
      console.log('radi');
       $('#dropdown-themes2',parent.document).hide();
    }
    if (e.keyCode == 27 && $('#style-inner',parent.document).is(":visible")) {
       $('#style-inner',parent.document).hide("slide", { direction: "left" }, 100);
       $('#panel-opener',parent.document).animate({left:"0"}, 100).css({'background-image':'url(img/gear.png)',
               'background-color':'#fff'}).attr('title','Open');
    }
  });

但没有。我在iframe很难过。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

例如,如果我想在id #displayframe的IFrame中单击时隐藏父文档中的一个元素,我就这样做了:

 $('#displayframe').load(function(){
     var iframeRef = document.getElementById('displayframe');
     $(iframeRef).contents().click(function(){
                $(document, parent.window.document).contents().find('#style-inner').hide();
     });});