js获取iframe中的元素以及在iframe中获取父级的元素(包括iframe中不存在name和id的情况)

如果是跳转到别的页面,跨域是取不到iframe中的元素的

第一种情况:iframe中不存在name和id的方法:(通过contentWindow获取)

var iframe = document.getElementsByTagName('iframe')[0];
var ifr_document = iframe.contentWindow.document;//iframe中的文档内容

或者:

var _iframe = document.getElementByIdx_x('iframeId').contentWindow;  
var _div =_iframe.document.getElementByIdx_x('objId'); 

或者:

var frameWin=document.getElementById('iframe').contentWindow;    //window对象  
var frameDoc=document.getElementById('iframeId').contentWindow.document  //document对象  
var frameBody=document.getElementById('iframeId').contentWindow.document.body   //body对

第二种情况:iframe中存在name或者id的方法:(通过frames[]数组获取)

document.frames['iframe的name'].document.getElementById('元素的ID');

第三种情况:在iframe中获取父级页面的id元素 :

var obj=window.parent.document.getElementById('objId') ;
$(window.parent.document).find("#objId").css('height':'height);   // window可省略不写 jquery

第四种情况:父级窗体访问iframe中的属性

a、 用contentWindow方法   
document.getElementById('iframe1').onload=function(){  
         this.contentWindow.run();  
 }  
b、用iframes[]框架集数组方法  
document.getElementById('iframe1').onload=function(){  
         frames["iframe1"].run();  
} 

第五种情况:在iframe中访问父级窗体的方法和属性 //window 可以不写

window.parent.attributeName;  // 访问属性attributeName是在父级窗口的属性名  
window.parent.Func();  // 访问属性Func()是在父级窗口的方法 

第五种情况:让iframe自适应高度

$('#iframeId').load(function() { //方法1  
    var iframeHeight = Math.min(iframe.contentWindow.window.document.documentElement.scrollHeight, iframe.contentWindow.window.document.body.scrollHeight);  
    var h=$(this).contents().height();  
    $(this).height(h+'px');   
});  
  
$('#iframeId').load(function() { //方法2  
    var iframeHeight=$(this).contents().height();  
    $(this).height(iframeHeight+'px');   
}); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值