请教个问题,react里面引入iframe我需要等iframe里面的html页面全部加载完再去获取这个html的高度,期望的是在子iframe里面获取高度后调用父react里面的方法,该怎么写
目前是这么写的但加载出来的iframe高度不正确,怀疑是onload拿到的是子iframe未渲染完的高度
所以想在子iframe里面获取高度后调父react页面的方法来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>
请大神们不吝赐教
楼上那种做法,在父级页面访问子级页面的dom属性,会受同源策略的限制,只适用于一定的场景。更加通用的做法是,在子级页面里侦听window.onload,获取自身的页面dom高度,然后通过postMessage将消息传递给父级页面,父级页面通过侦听message事件拿到子级页面dom高度,从而设置iframe元素高度。