Comment communiquer entre 2 onglets/fenêtres de navigateur? [dupliquer]

cette question a déjà une réponse ici:

j'ai une application web qui se lance comme deuxième application web dans une nouvelle fenêtre de navigateur / onglet. Je veux mettre à jour le contenu sur la page d'origine lorsque l'utilisateur soumet leur entrée sur la deuxième page.

Exemple Du Monde Réel: Google utilise ce comportement dans GMail. Lorsque vous composez un nouveau message si vous cliquez sur le lien, il affiche une liste de vos contacts dans une nouvelle fenêtre du navigateur. Cela laisse la fenêtre d'e-mail de composition originale ouverte et active pour la saisie tandis que l'utilisateur peut à tout moment sélectionner les destinataires d'e-mail à partir de la liste des contacts. Lorsqu'ils soumettent cette fenêtre, les adresses e-mail sélectionnées sont ajoutées à la liste des destinataires fenêtre de composition originale.

comment cela se fait-il? J'imagine que cela pourrait être fait en utilisant AJAX mais idéalement la solution évitera la logique d'aller-retour / programmation nécessaire pour l'acheminer via le serveur.

pour référence ma pile de technologie pour ceci est un ASP.NET MVC App launching a second ASP.NET application MVC qui contient une application Silverlight. Les deux applications peuvent utiliser jQuery.

Merci pour votre aide.

8
demandé sur Justin 2010-11-12 21:43:29

2 réponses

Je ne pense pas que vous vouliez dire deux onglets. Ce que Gmail fait, c'est communiquer entre un pop up et le parent.

alors disons que vous avez ouvert une nouvelle fenêtre en utilisant javascript. Dans la fenêtre ouverte vous pouvez faire:

opener.someFunction() pour transmettre les données. Laissez-moi Trouver un bon exemple et le coller.

Edit: voici un bon exemple. http://www.javascriptkit.com/javatutors/remote2.shtml

vous pouvez utiliser l'ouvreur pour faire beaucoup.

9
répondu Amir Raminfar 2010-11-12 18:47:00

vous avez deux possibilités:

  1. Constante interrogation ( setInterval et AJAX)
  2. Push ( Comète et HTML 5 de l'API WebSocket )
-1
répondu Darin Dimitrov 2010-11-12 18:47:17