获取子iframe框架的元素

本文介绍了如何解决iframe根据内部内容自适应高度的问题,并演示了如何通过JavaScript获取iframe内外元素及添加事件监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们常常遇到使用iframe框的时候,该iframe框不能根据自己内部的内容撑起来的这种问题
必要条件:不能在跨域的情况下。。。本地可以放到localhost下进行测试

//父页面index.html页面
<iframe id="ifr" src="iframe1.html" frameborder="0" width="100%" name="iframe1"></iframe>

//框架iframe.html
<body>
    <div id="btn1">
        我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我        是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>我是iframe1的内容<br/>
    </div>
</body>

如何 获取子iframe框 的元素呢??

window.frames['iframe1'].document.getElementById('btn1');//获取name为iframe1的btn1

//比如你可以给它添加事件: 
window.frames['iframe1'].document.getElementById('btn1').onclick = function(){
    alert(1)
}

注意 要将代码放到window.onload = function(){...}里,否则因为没有加载完全dom节点会报错

如何 获取父iframe框 的元素呢??

parent.document.getElementById('click-btn').onclick = function() {
        console.log('打印父元素中点击的节点内容:'+ this.innerHTML);
    }//在iframe框中获取父页面的节点

最后,让子iframe框架高度自适应代码:

 // 计算页面的实际高度,iframe高度自适应
  function calcPageHeight(doc) {
      var cHeight = Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
      var sHeight = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)
      var height  = Math.max(cHeight, sHeight)
      return height
  }
  var ifr = document.getElementById('ifr')
  ifr.onload = function() {
      var iDoc = ifr.contentDocument || ifr.document
      var height = calcPageHeight(iDoc)
      ifr.style.height = height + 'px'
  }

转载于:https://www.cnblogs.com/geekfeier/p/6928034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值