在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ react 里面嵌套iframe高度自適應(yīng)問(wèn)題

react 里面嵌套iframe高度自適應(yīng)問(wèn)題

請(qǐng)教個(gè)問(wèn)題,react里面引入iframe我需要等iframe里面的html頁(yè)面全部加載完再去獲取這個(gè)html的高度,期望的是在子iframe里面獲取高度后調(diào)用父react里面的方法,該怎么寫
目前是這么寫的但加載出來(lái)的iframe高度不正確,懷疑是onload拿到的是子iframe未渲染完的高度
所以想在子iframe里面獲取高度后調(diào)父react頁(yè)面的方法來(lái)setState子iframe的高度

        <iframe 
          id="aa"
          style={{width:'100%'}}
          onLoad={() => {
              const obj = ReactDOM.findDOMNode(this.refs.iframe);
              console.log(obj,obj.contentDocument.body,obj.contentDocument.body.scrollWidth, obj.contentDocument.body.scrollHeight)
              this.setState({
                  "iFrameHeight":  obj.contentDocument.body.scrollHeight + 'px'
              });
          }} 
          ref="iframe" 
          src="ink/ink.html" 
          width="100%" 
          height={this.state.iFrameHeight} 
          scrolling="no" 
          frameBorder="0"
        >
        </iframe>

請(qǐng)大神們不吝賜教

回答
編輯回答
嘟尛嘴

這個(gè)問(wèn)題是自己對(duì)iframe不夠了解才卡主的想想也可笑一直在react里面尋求答案
引進(jìn)的iframe是本地的這樣我們可以換種思維,我們?cè)谧觟frame里面拿到高度直接給react的指定元素,

  1. 我們需要在父頁(yè)面就是react頁(yè)面引入react-dom 用來(lái)綁定該頁(yè)面的dom元素

like this

import ReactDOM from 'react-dom';
<iframe 
    id="iframe-b"
    style={{width:'100%'}}
    onLoad={() => {}} 
    ref="iframe" 
    src={inkSrc}
    width="100%" 
    scrolling="yes" 
    frameBorder="0"
      >
</iframe> 

2.在子頁(yè)面頁(yè)面完全加載完利用js獲取頁(yè)面高度給父react頁(yè)面
like this

  let h  =  document.getElementById('iframe-body').scrollHeight;
  parent.document.getElementById("iframe-b").style.height = h + "px"; 
2017年5月19日 13:48