1、现在嵌入页面子页面加入传给父页面高度的方法
/** * 设置页面iframe高度 (在vue的updated()中使用) * */ setPageIFrameHeight(currentPage) { var height = document.getElementById("app").offsetHeight+80; var postObj = { viewHeight: 600, }; height = height&&height>600 ? height : 600; postObj.viewHeight = height; var message = JSON.stringify(postObj); //把页面高度传给嵌入的父页面 window.parent.postMessage(message, '*'); // console.log("message",message); }
2、在页面中写入生命周期更新后的updated(),这个函数会在页面修改页面大小触发
export default { // updated 更新完成状态 updated() { this.$nextTick(()=>{ //在下次 DOM 更新循环结束之后执行这个回调。在修改数据之后立即使用这个方法,获取更新后的DOM. this.setPageIFrameHeight(); }) }, }
3、在父页面获取子页面传过来的高度再赋值给iframe
/** * 封装的ifram高度自适应的方法 * @param {*} idName ifram的id元素值 */ IframeHeight:function(idName){ window.removeEventListener("message",reinitIframe,false);// 清除上一次的监听事件 window.addEventListener("message",reinitIframe,false);// 绑定监听事件 function reinitIframe(e){ //设置Iframe的高度 var obj = JSON.parse(e.data); $('#'+idName).height(obj.viewHeight); } },
总结:只是记录思路的方法,直接复制粘贴不可用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了