/ / Zamykanie okna modalnego z okna nadrzędnego - javascript, jquery, iframe, joomla, modal-dialog

Zamykanie okna modalnego z okna nadrzędnego - javascript, jquery, iframe, joomla, modal-dialog

Mam okno modalne, które ładujezewnętrzna strona HTML. Próbuję dowiedzieć się, jak zamknąć to okno modalne po załadowaniu zawartości. Ponieważ jest to strona zewnętrzna, nie będę w stanie zmienić tej zawartości, więc zgaduję, że muszę umieścić detektor zdarzeń na stronie nadrzędnej, który może wykryć, kiedy załadowano zawartość okna modalnego?

Każda pomoc będzie bardzo ceniona.

Odpowiedzi:

0 dla odpowiedzi № 1

Czy używasz .load() załadować zewnętrzną stronę HTML? Jeśli tak, możesz umieścić funkcję zwrotną w load() funkcjonować. Lubię to:

$("#someDiv").load(function(){
//Put code to close the modal
});

0 dla odpowiedzi nr 2

JS:

Aby wywołać metodę w oknie nadrzędnym z modala:

window.opener.document.globalMethodInOpeningFile(param1, param2);

Aby zamknąć okno modalne, wywołaj to po załadowaniu zawartości (możesz użyć .load(callbackFn) sprawdzić obciążenie "):

window.close();

0 dla odpowiedzi № 3

Jeśli otwierasz tę stronę modalną przy pomocy window.showModalDialog() wtedy nie możesz "t. Jak sama nazwa wskazuje, otwiera a modalny okno. Uruchomienie javascript na głównej stronie (otwierającej) zostanie zawieszone do czasu zakończenia modalu (ponieważ dialogi modalne mogą zwracać wartości, więc osoba dzwoniąca musi poczekać na zamknięcie okna dialogowego przed kontynuowaniem). Ponieważ strona, którą otwierasz, jest stroną zewnętrzną (zakładam w innej domenie), jedynym sposobem jej zamknięcia jest zamknięcie jej przez użytkownika.

Jeśli nie jest to akceptowalne, musisz użyć window.open lub okno modalne HTML, takie jak te oferty jQuery UI.


0 dla odpowiedzi nr 4

Zakładam, że używasz podstawowego modusa Joomlacecha. Kolejnym założeniem jest logika sterująca znajdująca się w oknie modalnym. Dlatego odpowiedź nie jest tak prosta, jak to możliwe, ponieważ nie jestem pewien przepływu pracy, który otwiera zewnętrzną stronę HTML, po której chcesz wywołać zdarzenie. Jednak po uruchomieniu logiki, która otwiera zewnętrzną stronę HTML, możesz użyć następującego kodu JavaScript osadzonego w renderowanym kodzie HTML okna modalnego, aby zamknąć okno modalne:

window.parent.SqueezeBox.close();