/ / Закриття модального вікна з батьківського вікна - javascript, jquery, iframe, joomla, modal-dialog

Закриття модального вікна з батьківського вікна - javascript, jquery, iframe, joomla, modal-dialog

У мене є модальне вікно, яке завантажуєзовнішня сторінка HTML. Я намагаюся зрозуміти, як закрити це модальне вікно після завантаження вмісту. Оскільки це зовнішня сторінка, я не зможу змінити цей вміст, тому я гадаю, що мені потрібно помістити слухач подій на батьківській сторінці, який може виявити, коли завантажено вміст модального вікна?

Будь-яка допомога буде вдячна.

Відповіді:

0 для відповіді № 1

Ви використовуєте .load() завантажити зовнішню сторінку HTML? Якщо так, ви можете поставити функцію зворотного виклику в load() функція Подобається це:

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

0 для відповіді № 2

JS:

Щоб викликати метод у батьківському вікні з модального:

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

Щоб закрити модальне вікно, зателефонуйте, коли завантажений вміст (ви можете використовувати .load(callbackFn) перевірити для завантаження`):

window.close();

0 для відповіді № 3

Якщо ви відкрили цю модальну сторінку за допомогою window.showModalDialog() тоді ти не можеш ". Як вказує власне ім'я, це відкриває a модальний вікно Виконання JavaScript на вашій головній сторінці (відкривач) буде призупинено, доки модальний код не закривається (оскільки модальні діалоги можуть повертати значення, тому абонент повинен зачекати закриття діалогу перед продовженням). Оскільки сторінка, яку ви відкриваєте, є зовнішньою сторінкою (я припускаю, в іншому домені), єдиний спосіб його закрити - це те, що користувач закриває його.

Якщо це не прийнятно, то вам потрібно використовувати window.open або HTML-модальне вікно, подібне до тих, що пропонуються користувальницьким інтерфейсом jQuery.


0 для відповіді № 4

Я припускаю, що ви використовуєте основний модуль Joomlaособливість Іншим припущенням є логіка керування, розташована всередині модального вікна. Ось чому відповідь не є прямою, оскільки це може бути тому, що я не впевнений в робочому процесі, який відкриває зовнішню сторінку HTML, яку ви хочете запустити після. Проте, після того, як логіка, яка відкриває зовнішню HTML-сторінку, звільнилася, ви можете використовувати наступний JavaScript, вбудований у ваш модальний вікно, який виводив HTML, щоб закрити модальне вікно:

window.parent.SqueezeBox.close();