iframe在同域时能自由操作iframe和父框架的内容(DOM),在跨域时可以实现页面跳转。
<iframe id="iframe" :src="iframeSrc" style="height: calc(100% - 50px)" width="100%" frameborder="0"></iframe>
获取iframe里面的内容
iframe.contentWindow, 获取iframe的window对象
iframe.contentDocument, 获取iframe的document对象
const _iframe = document.getElementById('iframe').contentWindow
CDM跨域
如果你设置的iframe的域名和你top window的域名完全不同,可以使用CDM(cross document messaging)进行跨域消息的传递。
发送消息: 使用postmessage方法
postMessage(message, targetOrigin)
message: 传递给iframe的内容, 通常是string,最好不要传object对象,需要传对象时,使用JSON.stringfy转换。
targetOrigin: 接受你传递消息的域名,可以设置绝对路径,也可以设置""或者"/"。 表示任意域名都行,"/

本文介绍了在Vue项目中如何使用iframe,包括在同域下自由操作iframe内容以及在跨域情况下实现页面跳转。重点讲解了如何通过CDM(Cross Document Messaging)进行跨域消息传递,如使用`postMessage`发送消息和监听`message`事件接收消息的详细步骤。
最低0.47元/天 解锁文章
5446

被折叠的 条评论
为什么被折叠?



