react使用iframe标签引入网页自适应高度

react使用iframe标签引入网页自适应高度

定义Iframe 函数组件(Iframe函数组件可提为高阶组件提高代码复用性)

const Iframe = props => {
  window.onresize=function(){ props.load()}
	return (
		<iframe id="iframeId" onLoad={ props.load} src={ props.src} width={ props.width}  height={`${ props.height}px`} frameborder="0" scrolling ="no"/>
	);
};

监听获取页面高度

 state = {
    height: ' ',
  };
 
  load = () => {
    var ifm = document.getElementById("iframeId");
    // console.log(ifm.contentDocument.body.scrollHeight)
    var subWeb = document.frames ? document.frames["iframeId"].document : ifm.contentDocument;
    if (ifm != null && subWeb != null) {
      this.setState({
        height: subWeb.body.scrollHeight - 30
      })
    }
  }

render渲染页面

  render() {
    return (

          <Iframe src="./index.html" width="100%" load={this.load} height={this.state.height} />
    );
  }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值