2010-11-12 11 views
7

Mam aplikację internetową, która uruchamia się jako druga aplikacja internetowa w nowym oknie/karcie przeglądarki. Chcę zaktualizować zawartość oryginalnej strony, gdy użytkownik przesyła dane na drugiej stronie.Jak komunikować się między 2 kartami/oknami przeglądarki?

Przykład realnego świata: Google stosuje to zachowanie w Gmailu. Podczas tworzenia nowej wiadomości, po kliknięciu linku "Do", pojawia się lista kontaktów w nowym oknie przeglądarki. Zostanie otwarte oryginalne okno wiadomości e-mail do pisania i aktywne, aby można było wprowadzić dane, a użytkownik może w dowolnym momencie wybrać odbiorców wiadomości e-mail z listy kontaktów. Po przesłaniu tego okna wybrane adresy e-mail zostaną dodane do listy odbiorców w oryginalnym oknie tworzenia wiadomości.

Jak to się robi? Wyobrażam sobie, że można to zrobić za pomocą AJAX, ale najlepiej rozwiązanie to pozwoli uniknąć logiki obiegu/programowania wymaganej do kierowania jej przez serwer.

Dla mojego stosu technologii jest to aplikacja ASP.NET MVC uruchamiająca drugą aplikację ASP.NET MVC, która zawiera aplikację Silverlight. Obie aplikacje mogą/robią użytek z jQuery.

Dzięki za pomoc.

Odpowiedz

9

Nie sądzę, że masz na myśli dwie zakładki. To, co robi Gmail, to komunikacja między wyskakującym okienkiem a rodzicem.

Załóżmy, że otworzyłeś nowe okno przy użyciu javascript. W otwartym oknie możesz:

opener.someFunction() przekazać dane z powrotem. Pozwól mi znaleźć solidny przykład i wklej go.

Edytuj: Oto dobry przykład. http://www.javascriptkit.com/javatutors/remote2.shtml

Możesz użyć otwieracza, aby dużo zrobić.

+0

to wygląda, co chcę używać. Próbowałem prostych testów w twoim linku. Działa doskonale w Firefoksie i IE, ale nie działa w Chrome. Kolor okna nadrzędnego nigdy nie jest aktualizowany. Każdy pomysł, dlaczego? – Justin

+0

@Amir: możesz wkleić przykład tutaj, może w fragmencie kodu, na wypadek, gdyby strona JavaScriptKit przestała działać. –

+0

Czy to rozwiązanie byłoby w stanie wykorzystać tę samą sesję w uwierzytelnionej witrynie internetowej? –

Powiązane problemy