Html5 – 跨浏览器Iframe postmessage – 孩子父母?
我一直在遵循这个教程 – 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);
这是由一个简单的forms(在子)触发的发件人function –
var text=$('.srchInput').val(); window.parent.postMessage(text, "http://uc.dialogue.net");
我应该以不同的方式瞄准父母吗?
干杯保罗
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);
得到它与上面的父页面和以下在子页面上工作 –
parent.postMessage("loadMyOrders","*"); // `*` on any domain
从这里复制代码。
被接受的答案的一个现代,简化的版本(丢弃传统ie8支持,并且使代码更加可读):
window.addEventListener('message',function(e) { var key = e.message ? 'message' : 'data'; var data = e[key]; //run function// },false);
请参见: