当前位置:网站首页>跨域嵌套传递信息(iframe)
跨域嵌套传递信息(iframe)
2022-08-03 07:14:00 【小菜鸟学代码··】
跨域嵌套传递信息
最常见的就是iframe
一般用户gis地图航拍或者嵌套其他网页的页面之类的
postMessage 之间的传值问题
- 父组件里面嵌套了子组件
<div>222</div>
<iframe id="iframeid" src="./index4.html" frameborder="0"></iframe>
父传子
- 父
let title='shfdsjkj'
window.onload = () => {
document.getElementById('iframeid').contentWindow.postMessage({
type: ames }, '*')
}
- 子
window.addEventListener('message', e => {
console.log(e.data.type, '===========');
},false)
这里讲几个重点
首先父组件的传值时候一定要写在文档加载完成之后
因为如果不写onload就会出现iframe渲染完毕但是并没有找到对应方法或者值就是undefiend,这里考虑到执行顺序目前我只做成功传递字符串,父传子传递方法的时候就会报错,说是无法调用父节点的方法,所以有兴趣的话可以自行去了解
子传父
- 子
window.parent.postMessage({
type: 'addTemplateLayers'
}, '*');
function addFn(data) {
console.log(data);
}
- 父
//这是传递字符串
window.addEventListener("message", getMessage);
function getMessage(e) {
console.log(e.data.type, '222');//addTemplateLayers
}
//这两行代码可以合并
window.addEventListener("message", e=>{
console.log(e.data.type,'第二次哦');
});
//使用子组件的方法
window.onload = () => {
document.getElementById('iframeid').contentWindow.addFn('我是父组件调用子组件')
}
这里同理也要写在onload上面,首先获取iframeid的window元素,直接调取子组件里面的方法
到这里postMessage就已经传值完毕了 ,不清楚的欢迎留言
vue,react的话只需要在mounted,useEffuct里面写就好了
边栏推荐
- RHCSA第四天
- 帆软11版本参数联动为null查询全部
- mysqlbinlog: unknown variable 'default-character-set=utf8'
- Oracle Rac 集群文件目录迁移
- [机缘参悟-59]:《素书》-6-安于礼仪[安礼章第六]
- Detailed explanation of cause and effect diagram of test case design method
- Roson的Qt之旅#103 QML之标签导航控件TabBar
- 请手撸5种常见限流算法!面试必备
- - display image API OpenCV 】 【 imshow () to a depth (data type) at different image processing methods
- [Hello World] 二分查找笔记
猜你喜欢
随机推荐
“碳中和”愿景下,什么样的数据中心才是我们需要的?
《21天精通TypeScript-5》类型注解与原始类型
【图像去噪】基于matlab稀疏表示KSVD图像去噪【含Matlab源码 2016期】
推荐系统-排序层-模型:Wide&Deep
解读 refresh 十二步骤
关于利用canvas画带箭头的直线旋转
qt学习之旅--MinGW编译FFmpeg(32bit)
pt-online-schema-change工具使用的一次
华为设备配置BFD多跳检测
最新版图书馆招聘考试常考试题重点事业单位
HCIP笔记整理 2022/7/20
Daily practice of PMP | Do not get lost in the exam-8.2 (including agility + multiple choice)
PMP每日一练 | 考试不迷路-8.2(包含敏捷+多选)
多线程打印ABC(继承+进阶)
升级
Umi 4 快速搭建项目
解决移动端有纵向滚动条但是不能滚动的问题
jvm 面试题
consul理解
boot-SSE







