设置iframe高度随内容变动源码与解答

  iframe高度随内容变动

<iframe id="mainFrame" src="result.jsp" frameborder="0" width="100%" height="100%" οnlοad="this.height=mainFrame.document.body.scrollHeight"></iframe>

 上面这句话,就实现了我们需要的效果!

这里主要注意的是2个地方:

1需要将iframe的frameborder设为0,不然还是有可能出现滚动条

2在onload事件中加入“this.height=mainFrame.document.body.scrollHeight”代码,这是为了让iframe的高度在html执行后来动态设置iframe的高度为内容的高度。

内容过长,有可能出现滚动条。。

源码分享爱好者:岳静

共同学习共同进步!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中使用iframe并使其高度内容变化,可以通过以下步骤实现: 1. 首先,在Vue组件中定义一个变量来保存iframe高度,例如`iframeHeight`。 2. 在父组件中加载iframe,并添加一个监听器来处理iframe的加载完成事件。在加载完成后,获取iframe内容高度。 3. 在父组件中使用`postMessage()`方法将iframe内容高度传递给子组件。 4. 在子组件中添加一个监听器来接收从父组件传递过来的iframe高度。 5. 在子组件中使用`watch`属性或者计算属性来监听iframe高度的变化,并将该高度应用到iframe的样式上。 下面是一个示例代码: ```vue <template> <div> <iframe ref="myIframe" src="your-iframe-src" @load="handleIframeLoad"></iframe> </div> </template> <script> export default { data() { return { iframeHeight: 0 }; }, methods: { handleIframeLoad() { const iframe = this.$refs.myIframe; const iframeDocument = iframe.contentDocument || iframe.contentWindow.document; const iframeContentHeight = iframeDocument.body.scrollHeight; window.addEventListener("message", event => { if (event.data && event.data.type === "iframeHeight") { this.iframeHeight = event.data.height; } }); iframe.contentWindow.postMessage({ type: "getIframeHeight" }, "*"); } }, watch: { iframeHeight(newHeight) { this.$refs.myIframe.style.height = `${newHeight}px`; } } }; </script> ``` 在子组件中,我们监听`iframeHeight`变量的变化,并将新的高度应用到iframe的样式上。 在父组件中,我们使用`postMessage()`方法向子组件传递iframe内容高度,并在子组件中接收该高度,并更新`iframeHeight`变量。 请注意,在加载完成后,我们使用`postMessage()`方法将消息发送到iframe中,以请求获取iframe内容高度。为了避免安全问题,我们使用`"*"`来指定接收消息的窗口。你可以根据实际情况调整这些代码来适应你的项目需求。 希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值