博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iframe跨域解决方案
阅读量:4588 次
发布时间:2019-06-09

本文共 794 字,大约阅读时间需要 2 分钟。

    公司某个功能用的是iframe,由于跨域的原因,我们不能直接设置父级页面iframe的高度,所以用了一个中间页home来完成父级页面iframe的高度设置,这种中间页其实很多时候不好用,因为涉及到页面跳转和刷新,每次都得刷一下页面,而消息发送成功页的一个定位到顶部的功能,就是由于页面刷了一次导致体验不好,除了体验,这种中间页跳转的做法也很蹩脚和繁琐。

    昨天网上Get了一下iframe的跨域解决方案 找到了一个方法!

    postMessage,通过postMessage可以实现iframe的跨域通信。原理是子页面向父页面发送消息,父页面接收消息。

    话不多说直接干货。

 

    子页面代码:

top.postMessage('success', '在这里填写父页面URL');

    父页面代码:

//响应事件    window.addEventListener('message', function (e) {        var color = e.data;        console.log(color);        if (color == "success")        {            $("#MessageSend").height(600);            $(window).scrollTop(0);        }    }, false);

    如上,子页面向父页面发送了一条消息 “success”,父页面获取消息后判断消息内容是不是想要的,进而做相应的操作。

 

    上面的代码还应该完善一下,父页面接收消息请求的时候,应该验证域名,总不能随便一个页面发来消息这边就处理。

 

转载于:https://www.cnblogs.com/sunshine-wy/p/8891033.html

你可能感兴趣的文章
[Arduino] 基于Xbee Pro和网络技术的智能公交系统设计
查看>>
My97DatePicker日历控件配置
查看>>
HDU 3586-Information Disturbing(树形dp)
查看>>
《超越CSS:web设计精髓》的读后感
查看>>
团队项目第一阶段冲刺站立会议09
查看>>
团队项目第二阶段冲刺站立会议03
查看>>
Python 错误和异常小结
查看>>
sass基础
查看>>
关于Unity中特殊目录
查看>>
360wifi提取版
查看>>
关于Unity遇到的问题
查看>>
jQuery---ajax
查看>>
hdu 1270
查看>>
存储过程笔记
查看>>
AtCoder Grand Contest 017 迟到记
查看>>
CodeForces - 858A k-rounding
查看>>
CF 622F (拉格朗日插值)
查看>>
javascript变量类型转换(简单记几个)
查看>>
python过滤 Kubernetes api数据
查看>>
量子测量
查看>>