使用javascript中的postMessage函数将消息从一个域发送到另一个域
如果我在一个浏览器中打开一个域chat.example.com,在另一个浏览器中打开www.example.com(跨域)。是否可以从www.abc.com向chat.abc.com发送消息 我尝试了以下几点: 接收方(即www.example.com)上接收消息的脚本如下所示: jqcc(文档).ready(函数(){ })) 当我尝试从as发送消息时 window.postMessage(“Hello”和“) 我在浏览器的控制台里什么都没有。请帮忙不,它不行使用javascript中的postMessage函数将消息从一个域发送到另一个域,javascript,postmessage,Javascript,Postmessage,如果我在一个浏览器中打开一个域chat.example.com,在另一个浏览器中打开www.example.com(跨域)。是否可以从www.abc.com向chat.abc.com发送消息 我尝试了以下几点: 接收方(即www.example.com)上接收消息的脚本如下所示: jqcc(文档).ready(函数(){ })) 当我尝试从as发送消息时 window.postMessage(“Hello”和“) 我在浏览器的控制台里什么都没有。请帮忙不,它不行 postMessageapi只能
postMessage
api只能与iframe一起使用。您要做的是在www.chat.example.com
内部打开一个iframe,指向www.example.com
。然后,您可以使用document.getElementById('iframe\u pointing\u to\u chat').contentWindow.postMessage('message','*')
现在,www.chat.example.com将通过onmessage处理程序接收消息
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);