zoukankan      html  css  js  c++  java
  • 获取子iframe框架的元素

    我们常常遇到使用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'
      }
  • 相关阅读:
    微积分
    Docker实战
    使用 Docker 建立 Mysql 集群
    Adaptive Query Optimization in Oracle Database 12c (12.1 and 12.2)
    open()在Linux内核的实现(5)-符号链接目录项的处理
    Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
    Linux进程(作业)的查看和杀死 牛
    为Go语言GC正名-20秒到100微妙的演变史
    汇编语言---GCC内联汇编
    ActiveReports 报表应用教程 (15)---报表换肤
  • 原文地址:https://www.cnblogs.com/geekfeier/p/6928034.html
Copyright © 2011-2022 走看看