2010-11-04 91 views
5
$.fn.resizer = function(o){ 

    var s = {} 
    $.extend(s,o); 

    return this.each(function(){ 

     $(this).css({ 
      'width':s.width+20, 
      'height':s.height+20 
     }) 
      .parent().css({ 
       'width':s.width, 
       'height':s.height 
      }); 

    }); 

} 

我想用iframe在iframe中做这件事。jQuery:从iframe中访问iframe dom

当我试图通过从那里叫它:

$(top).uploader_finish({ 
    width:original_width+<?php echo $this->sizes['width'] ?>+20, 
    height:original_height+<?php echo $this->sizes['height'] ?>+80 
}); 

获取父窗口,但是如何直接访问IFRAME?

感谢)

更新

唯一的解决办法我发现,是调用这样的:

$(top.document).find('IFRAME [名称= default_1 ]');

并且default_1名称像iframe中的src内部的$ _GET参数一样发送。

或者有没有办法从内部获取iframe的名称?

更新

AHA!找到它:)

window.name 

所以基本上它会是这样吗?

$(top.document).find('iframe[name='+window.name+']'); 
+0

让我知道如果这个工作! – hunter 2010-11-05 12:21:47

+0

有人,你应该把你的更新作为答案,这样我们可以为你+1。虽然,我在名字周围加了引号。这样它可以在更多情况下工作。 – 2014-04-21 04:03:47

+0

'$(top.document)'适合我,thx! – Paul 2017-08-16 09:27:15

回答

1

你可以通过框架是ID

document.getElementById('frameId') 

window.frames收集

$(document).find("iframe").attr("name"); 
+0

Nvm,如何从里面获取iframe的名称?这就是我需要的。 :) – Somebody 2010-11-04 14:43:30

+0

更新了我的答案 – hunter 2010-11-04 18:40:11