Javascript 如何在两个浏览器选项卡/窗口之间进行通信?

Javascript 如何在两个浏览器选项卡/窗口之间进行通信?,javascript,jquery,asp.net-mvc,browser,Javascript,Jquery,Asp.net Mvc,Browser,我有一个web应用程序,在新的浏览器窗口/选项卡中作为第二个web应用程序启动。当用户在第二页提交输入时,我想更新原始页上的内容 现实世界的例子: 谷歌在GMail中使用这种行为。撰写新邮件时,如果单击“收件人”链接,将在新的浏览器窗口中显示联系人列表。这会使原始的“撰写电子邮件”窗口保持打开状态并处于活动状态以供输入,同时用户可以随时从联系人列表中选择电子邮件收件人。当他们提交该窗口时,选定的电子邮件地址将添加到原始撰写窗口中的收件人列表中 这是如何实现的?我认为可以使用AJAX实现,但理想情

我有一个web应用程序,在新的浏览器窗口/选项卡中作为第二个web应用程序启动。当用户在第二页提交输入时,我想更新原始页上的内容

现实世界的例子: 谷歌在GMail中使用这种行为。撰写新邮件时,如果单击“收件人”链接,将在新的浏览器窗口中显示联系人列表。这会使原始的“撰写电子邮件”窗口保持打开状态并处于活动状态以供输入,同时用户可以随时从联系人列表中选择电子邮件收件人。当他们提交该窗口时,选定的电子邮件地址将添加到原始撰写窗口中的收件人列表中

这是如何实现的?我认为可以使用AJAX实现,但理想情况下,该解决方案将避免通过服务器路由所需的往返/编程逻辑

作为参考,我的技术堆栈是一个ASP.NET MVC应用程序,它启动了第二个包含Silverlight应用程序的ASP.NET MVC应用程序。这两个应用程序都可以/确实使用jQuery


谢谢你的帮助。

我想你不是指两个标签。Gmail所做的是在弹出窗口和家长之间进行通信

假设您使用javascript打开了一个新窗口。在打开的窗口中,您可以执行以下操作:

opener.someFunction()
返回数据。让我找到一个坚实的例子,并粘贴它

编辑:这里有一个很好的例子


你可以用开瓶器做很多事情。

你有两种可能:

  • 常量轮询(和AJAX)
  • 推(和)

  • eeh轮询选项卡,但不轮询打开新窗口。:)这看起来像我想用的。我在你的链接中尝试了一些简单的测试。适用于Firefox和IE,但在Chrome中失败。父窗口的颜色永远不会更新。你知道为什么吗?@Amir:你可能想把这个例子粘贴在这里,也许是在一个代码片段中,以防JavaScriptKit网站崩溃。这个解决方案能够在一个经过身份验证的网站中利用相同的会话吗?这种方法不适用于IE(至少10、11和Edge)。我想将所选文件从子文件发送到打开程序。我在这里提出了一个问题: