Закрыть Magnific Popup Iframe при нажатии на ссылку

Итак, прямо сейчас у меня есть iframe Magnific Popup, открытый для формы (с использованием Machforms).

<div align="center">
  <a class="popup-link" href="...machform/view.php?id=3717">
     <img src="images/image.png">
  </a>
</div>

После отправки формы она перенаправляется на другое всплывающее окно iframe и содержит ссылку для загрузки в формате PDF, которая открывается в новой вкладке.

Thank you. Your submission has been successful! <br/>
<a href=".../downloads/TEST%20DOWNLOAD%20PAGE.pdf" target="_blank">Download file here.
</a>

При нажатии это «загрузить файл здесь». ссылка, я бы хотел, чтобы всплывающее окно автоматически закрывалось.

Как мне это сделать? Я пробовал closeOnContentClick и переопределял закрытие, но я не могу заставить его работать для этой конкретной ссылки.

Заранее спасибо!


person MKL    schedule 14.07.2014    source источник


Ответы (3)


Вы вызываете $.magnificPopup.close() вручную, но поскольку он находится в iframe, вам нужно вызывать его из родительского окна.

Вот что я сделал в своем старом проекте

$('#yourlinkID').click(function(e) {
   e.preventDefault();
   if (window.parent == window.top) {
      window.parent.$.magnificPopup.close();
   }
});
person azureru    schedule 16.07.2014

Добавьте класс .close-my-popup к вашей ссылке, а это к вашему файлу javascript:

$(document).ready(function() {      
 $('.close-my-popup').click(function() {
    $.magnificPopup.close();
 });
}); 

Или вы можете сделать это так:

<a href=".../downloads/example.pdf" target="_blank" onclick="$.magnificPopup.close();">Download file here.</a>
person arduin    schedule 30.07.2014

Прикрепите обработчик кликов с помощью javascript к этой ссылке, а затем вызовите window.close() для обратного вызова.

Пример (с jQuery):

$('[link selector here]').click(function() {
    window.close();
});

Убедитесь, что это добавлено в код в iFrame, иначе оно закроет ваше главное окно.

person leedotpang    schedule 14.07.2014
comment
Что вы подразумеваете под [селектор ссылок здесь]? войдет ли это в мой код javascript для великолепного всплывающего окна? Спасибо за ответ. - person MKL; 15.07.2014
comment
Это будет добавлено в Javascript во всплывающем окне. Вы можете добавить селектор ссылок $('a') в jQuery. Или вы можете добавить класс к ссылке и использовать для этого селектор: например: $('.close') и добавить class='close' к вашей ссылке - person leedotpang; 15.07.2014