Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在同一chrome应用程序的多个窗口之间通信_Javascript_Google Chrome_Google Chrome App - Fatal编程技术网

Javascript 如何在同一chrome应用程序的多个窗口之间通信

Javascript 如何在同一chrome应用程序的多个窗口之间通信,javascript,google-chrome,google-chrome-app,Javascript,Google Chrome,Google Chrome App,我有一个打包的chrome应用程序,有多个窗口。例如,如果我单击第一个窗口中的按钮,则会打开第二个窗口。现在了解如何互相发送消息或命令。 我已经读了很多关于它的书,但没有弄明白,因为我对这一点非常陌生。 任何示例代码都将非常有用 存在一个问题,但不知道如何解决 提前感谢 您可以使用一个窗口的postmessage方法将信息发送到另一个窗口。通过采用这种方法,您可以从不同窗口(B)上的窗口(a)执行方法。您需要在窗口B上创建一个事件,通知A方法正确运行 代码类似于: 发件人: 目的地: 您还可以在

我有一个打包的chrome应用程序,有多个窗口。例如,如果我单击第一个窗口中的按钮,则会打开第二个窗口。现在了解如何互相发送消息或命令。 我已经读了很多关于它的书,但没有弄明白,因为我对这一点非常陌生。 任何示例代码都将非常有用

存在一个问题,但不知道如何解决


提前感谢

您可以使用一个窗口的postmessage方法将信息发送到另一个窗口。通过采用这种方法,您可以从不同窗口(B)上的窗口(a)执行方法。您需要在窗口B上创建一个事件,通知A方法正确运行

代码类似于:

发件人:

目的地:


您还可以在此处找到部门内的解释:

对于Chrome应用程序,不需要关于域的部分

你需要的是:

targetWindow = chrome.app.window.get("window-id").contentWindow;
targetWindow.postMessage(message, "*");
要发送消息,同时接收,请执行以下操作:

window.addEventListener('message', function(event) {
  var windowId = chrome.app.window.current().id;

  console.log(windowId + ': received a message: ' + event.data, event);
  var message = 'hello back!';
  console.log(windowId + ': sending message: ' + message);            
  event.source.postMessage(message, event.origin);
});
targetWindow = chrome.app.window.get("window-id").contentWindow;
targetWindow.postMessage(message, "*");
window.addEventListener('message', function(event) {
  var windowId = chrome.app.window.current().id;

  console.log(windowId + ': received a message: ' + event.data, event);
  var message = 'hello back!';
  console.log(windowId + ': sending message: ' + message);            
  event.source.postMessage(message, event.origin);
});