Dan*_*cer 63 javascript jquery html5 jquery-mobile
我一直在关注这个教程 - http://www.youtube.com/watch?v=R2hOvZ7bwXU,它基本上解释了如何使用postmessage在iframe和父级之间安全地传递消息 - 你基本上最终会得到这样的东西 - http://html5demos.com/postmessage2
我的问题是我需要它以相反的方式工作(子到父)并且不知道如何定位父窗口.
这是我的接收者代码(在父母中) -
function handlingMsg(e)
{alert("works")
if(e.origin == "http://uc.dialogue.net")
{
var blah = e.data;
alert(blah);
}
else{alert("error");}
}
addEventListener("message",handlingMsg, true);
Run Code Online (Sandbox Code Playgroud)
这是由简单表格(在孩子中)触发的发件人功能 -
var text=$('.srchInput').val();
window.parent.postMessage(text, "http://uc.dialogue.net");
Run Code Online (Sandbox Code Playgroud)
我应该以不同的方式定位父母吗?
干杯保罗
Dan*_*cer 103
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
// Listen to message from child window
eventer(messageEvent,function(e) {
var key = e.message ? "message" : "data";
var data = e[key];
//run function//
},false);
Run Code Online (Sandbox Code Playgroud)
在父页面和子页面中的以下内容中使用它 -
parent.postMessage("loadMyOrders","*"); // `*` on any domain
Run Code Online (Sandbox Code Playgroud)
代码从这里复制.
Avi*_*ran 25
接受答案的现代简化版本(删除了遗留的ie8支持,使代码更具可读性):
window.addEventListener('message',function(e) {
var key = e.message ? 'message' : 'data';
var data = e[key];
//run function//
},false);
Run Code Online (Sandbox Code Playgroud)
请参阅:
| 归档时间: |
|
| 查看次数: |
75268 次 |
| 最近记录: |