window.postMessage()方法可以安全地实现Window对象之间的跨域通信.例如,在页面和嵌入其中的iframe之间. 不同页面上的脚本允许彼此访问,当且仅当它们源自的页面共享相同的协议,端口号和主机(也称为“同源策略”).window.postMessage()提供了一个受控的机制相对来安全地规避这个限制. 发送消息的基本语法: targetWindow.postMessage(message, targetOrigin, [transfer]); targetWindow就是接…
父级调用iframe方法: document.getElementById("iframe").contentWindow.func(data1,data2...) 子级 iframe中调用 父级html中方法: parent.func(data1,data2...) 使用的前提条件是要在同域名下,想要如果域名不同,甚至端口不同,都会存在 跨域 的问题. 简单示例demo:    a.html 页面 <html> <head> <meta http-equ…
介绍 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage window.postMessage 发送方 接收方 示例:父页面(parentpage_copy.html)传值给子页面(subpage_copy.html) parentpage_copy <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q…
window.postMessage() 方法可以安全地实现跨源通信.通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https), 端口号(443为https的默认值),以及主机  (两个页面的模数 Document.domain设置为相同的值) 时,这两个脚本才能相互通信.window.postMessage()  方法提供了一种受控机制来规避此限制,只要正确的使用,这种方法就很安全. otherWindow.postMessage(message, target…
easyui 中iframe嵌套页面,大弹窗自适应居中的解决方法.$('#win').window() 以下是左边栏和头部外层遮罩显示和隐藏方法 /*外层 遮罩显示*/ function wrapMaskShow(){ var maskTop = window.top.$("#mask-top");//外层遮罩 var maskLeft = window.top.$("#mask-left"); maskTop.show(); maskLeft.show(); $(…
原文:window.opener方法的使用 js跨域 最近公司网站登陆加入了第三方登陆.可以用QQ直接登陆到我们网站,在login页面A中点QQ登陆时,调用了一个window.open文件打开一个login页窗口B,登陆后callback地址回调成功后,需要关闭当前window.open打开的login小窗口B,再将打开这个小窗口的原窗口页(A)刷新显示正确状态. 这时就用到了这个方法: window.opener.location.reload() 与 window.opener.locati…
在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父窗口中的回调方法.普通的javascript很难实现跨域请求和调用的操作.通过jsonp方式实现起来复杂.不过通过Html的postMessage和onMessage可以轻松实现以上功能. postmessage方法 postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以…
项目中用到easyui 布局,用到north,west,center三个区域,且在center中间区域嵌入iframe标签.在主内容区做一些小提示弹窗(例如删除前的弹窗提示确认)时,会遇到遮罩问题,由于center区域是iframe嵌套的,所以里面的小弹窗无法覆盖页面的头部和左边目录栏. 情形一.点击提示弹窗里的确认后,提示弹窗消失: //warnTips为传入的值,例如successMask(“确定要删除选中的数据吗?”) function successMask(warnTips){ par…
在iframe跨域引用高度自适应这块写的js方式都试了不管用,最终使用的是window.postMessage() 跨域获取高度 传递信息 1.首先,在主页面上使用iframe引入子页面:也就是A.html页面引入B.html页面,下面看看A.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head>…
什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制.所谓同源是指相同的域名.协议和端口,只要其中一项不同就为跨域. 举几个例子: http://a.123.com/index.html和http://a.123.com/index.js非跨域,它们有相同的域名,协议和端口. http://a.123.com/index.html和http://b.123.com/index.js跨域,相同的端口.协议,但是域名不同(a.123.com和b…