如果我在一个浏览器中打开一个域chat.example.com,在其他浏览器上打开www.example.com(跨域)。是否可以从www.abc.com发送消息到chat.abc.com?
我试过以下:
接收方的脚本即www.example.com接收消息如下:
jqcc(document).ready(function(){
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) {
if(e.data.indexOf("He") >= -1){
console.log("Message Received:"+e.data);
}
},false);
});
当我尝试从http://chat.example.com发送消息时
window.postMessage( “你好”, “http://www.example.com”);
我在浏览器的控制台中什么都没有。请帮忙
答案 0 :(得分:2)
不,它不会工作。
postMessage
api仅与iframe一起使用。您要执行的操作是在www.chat.example.com
内向www.example.com
打开iframe。然后,您可以使用document.getElementById('iframe_pointing_to_chat').contentWindow.postMessage('message', '*')
。
现在,www.chat.example.com将通过onmessage处理程序接收消息。