关于嵌入的 iframe 获取高度的问题

2022-06-30 10:45:34 +08:00
 ohyeahhh
项目中需要用到 iframe 去加载内容的静态化网页,在设置高度时遇到了跨域的问题
控制台报错如下:
( DOMException: Blocked a frame with origin "http://localhost:8088" from accessing a cross-origin frame.)
百度后得到的结论是我在父页面与 iframe 有交互时如果不在同源下就会报这个错误,我的目的是要拿到 iframe 的高度,所以在父页面要通过 js 获取 iframe 对象,此时就报跨域了
之前的解决是通过自己的 nginx 代理就不会跨域,但是因为某种原因这个方案不能用了,所以要寻求新的解决方案
求各位大佬不吝赐教~
711 次点击
所在节点    前端开发
2 条回复
liushuigs
2022-06-30 13:31:09 +08:00
可以用 postMessage 将 iframe 的高度传给父窗口。这是个示例:https://runjs.qingting.work/#/projects/949aac975ff44134
mxT52CRuqR6o5
2022-06-30 13:34:12 +08:00
如果你能改 iframe 里的代码就能做到

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX