一个javascript控制两个独立的浏览器窗口。

一个javascript控制两个独立的浏览器窗口。,javascript,Javascript,我正在使用HTML5画布元素构建一个所谓的随机艺术生成器。现在,我希望控制画布上实时视觉动作的按钮位于单独的窗口中。有办法吗?我想我需要一个javascript来控制两个独立的浏览器窗口 您需要用于跨文档消息传递的通信API 您可以使用postMessage发送和接收消息 //Post message window.postMessage('Hello world...', 'http://example.com'); //Bind events window.addEventListener

我正在使用HTML5画布元素构建一个所谓的随机艺术生成器。现在,我希望控制画布上实时视觉动作的按钮位于单独的窗口中。有办法吗?我想我需要一个javascript来控制两个独立的浏览器窗口

您需要用于跨文档消息传递的通信API

您可以使用
postMessage
发送和接收消息

//Post message
window.postMessage('Hello world...', 'http://example.com');

//Bind events
window.addEventListener('message', messageHandler, true);
另外,不要忘记检查浏览器支持:

if(typeof window.postMessage === "undefined"){
   alert('Your browser doesnt support this functionality');
}

如果两个页面来自同一来源(协议、主机名、端口),则可以使用跨文档消息传递。这是如何做到的:

在应该发送信息的页面上(使用按钮),您可以调用以下命令:

window.postMessage(message, origin);
它会将提供的消息发送到给定的来源(您的其他页面的url)

在您的接收页面上,您包括以下功能:

window.addEventListener("message", yourfunction);
其中,
yourfunction
接受一个参数,
e
<代码>e属于MessageEvent类型,包含以下属性:

  • 资料
  • 起源
  • source(返回与发送脚本关联的窗口。)

这就是全部

这对你有帮助吗?