没有从iframe接收postMessage
postMessage not being received from iframe
以下是带有src="example.com"
的iframe中的代码
<script>
var domain = "http://example2.com";
function redirectRequest(){
console.log("window.opener",window.opener); // NULL
console.log("window.top",window.top); // script_name
console.log("window.parent",window.parent); // script_name
opener.postMessage("redirect", domain); //fails because null
//top and parent also do not work BUT do not display errors
}
</script>
这里是在example2.com
中运行的代码,它包含postMessage接收器(也包含iframe):
function message_listener(event) { //nothing is ever received...
console.log("event received",event);
var data = event.data;
console.log("data received",data);
}
if (window.addEventListener) {
window.addEventListener("message", message_listener);
} else {
// IE8
window.attachEvent("onmessage", message_listener);
}
知道可能会发生什么吗?非常感谢。。。
对于iframe,您需要将opener替换为parent。替换此:
opener.postMessage("redirect", domain);
到此:
window.parent.postMessage("redirect", domain);
在我的案例中,出于某种原因,这有帮助:
// Inside iframe
window.parent.socket.postMessage('msg example', '*');
相关文章:
- Meteor如何接收HTTP请求
- CORS-重定向到第二个GET正在接收的页面
- servlet中的请求对象,而不是从jsp接收参数值
- Scipt未在选定选项卡中执行以发送和接收消息
- 作为一个二维数组,从ajax接收
- 在javascript中接收来自mssql.query的变量
- 子进程未接收消息
- 如何检查消息(postMessage)来自哪个跨域iframe
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- 套接字服务器向客户端广播,但不从两者接收
- 根据部门用户的选择,接收来自多个电子邮件地址的Wordpress Contactform7查询
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- Django在使用AJAX时没有接收到新的查询字符串
- three.js:如何让透明的png精灵投射和接收阴影
- 在node.js应用程序中接收JMS消息
- sails.js beforeCreate方法只接收required设置为true的模型属性
- 从 postMessage 事件接收的 eval() 代码有多安全
- 没有从iframe接收postMessage
- 使用postMessage()不被接收
- 通过postMessage接收到消息后打开一个弹出窗口