Перейти к содержимому


Фотография
- - - - -

Как передовать событие из fancybox сразу после отправки статьи


Лучший Ответ runyugin , 26 June 2015 - 10:48

Решение в целом найдено, после отправки настроен переход на определенную страницу а с нее идет вызов функции которая прописана в индексной страницы, там и закрытие и обновление страниц и прочее. Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 12

#1 runyugin

runyugin

Отправлено 27 May 2015 - 13:37

Сейчас поместив код для скрытия окна fancybox

    parent.jQuery.fancybox.close();

окно исчезает только после перезагрузки iframe

 

http://allwheelchairs.ru/

 

А хотелось бы закрытие окна сразу по нажатию кнопки "подача"

Далее сразу сообщение в модал. окне о удачной отправке или ошибке с кнопкой ОК и переходом на главную с перезагрузкой страницы, чтобы видеть новый опубликованный материал.


  • 0

#2 SmetDenis

SmetDenis

Отправлено 28 May 2015 - 08:56

На страницу с результатом подачи  можно добавить эту строку + переход к нужной ссылке.

Все это делается через JS.

Страница успешной оплаты выбирается следующим образом - http://forum.jbzoo.com/topic/11174-


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 runyugin

runyugin

Отправлено 06 June 2015 - 20:26

На страницу с результатом подачи

 

а где эта страница назначается?


  • 0

#4 runyugin

runyugin

Отправлено 06 June 2015 - 21:07

Реально очень нужна помощь как добить вопрос:

 

http://allwheelchairs.ru/

 

при подаче материала скрыть окно подачи и обновить страницу.


  • 0

#5 SmetDenis

SmetDenis

Отправлено 07 June 2015 - 05:56

В настройках пункта меню у формы подачи есть опция - куда будет редирект после успешного сохранения материала.

cfbf_200x0.png

 

На указанной странице добавить код, которой закрывает fancybox


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 runyugin

runyugin

Отправлено 07 June 2015 - 14:42

окей сделано, окно скрываеться кодом

 
 <script type="text/javascript">
    jQuery(function ($) {
		
		parent.jQuery.fancybox.close();

	});
</script>

а как вызвать перезагрузку страницы которая не в фрейме? ведь код идущий в скрипте на странице редикта после закрытия исчезает...


  • 0

#7 runyugin

runyugin

Отправлено 07 June 2015 - 15:04

нашел решение:

"afterClose": function(){window.location.reload();}

добавляем в функции вызова


А как отловить и вывести событие после отправки. т.е. если была ошибка, или слишком быстрая подача после первой, или наоборот всё удачно. т.е. вывести после закрытия фрейма.


  • 0

#8 SmetDenis

SmetDenis

Отправлено 09 June 2015 - 07:06

А как отловить и вывести событие после отправки. т.е. если была ошибка, или слишком быстрая подача после первой, или наоборот всё удачно. т.е. вывести после закрытия фрейма.
 

 

Перед вызовом своих функция (закрытия, перезагрузки) можно проверить существование контейнеров, в которых вывелась ошибка. Если есть - не вызывать.

 

Чтобы из фрейма управлять родительским окном, то обращаться через parent.window.location или top.window.location


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#9 runyugin

runyugin

Отправлено 24 June 2015 - 12:43

в окне созданном fancybox стоит переадресация после подачи материала на пустую страницу с кодом:

 
 <script type="text/javascript">

    jQuery(function ($) {


	$(parent.window.location).ready(function(){
              $(".genereet").html("<p>Сообщение отправлено!</p>");
	});	

	parent.jQuery.fancybox.close();

	});

</script>

задача подача материала, после падачи закрытие окна и вывод сообщения.

 

пока код несрабатывает(( где ошибка?


Сообщение отредактировал runyugin: 24 June 2015 - 12:44

  • 0

#10 SmetDenis

SmetDenis

Отправлено 24 June 2015 - 15:16

http://fancyapps.com/fancybox/#docs
В callback'ах можно найти afterClose и beforeClose

Функции указываются при инциализации
http://stackoverflow...ose-not-working

В вашем случае тут
7vjf_200x0.png

Часть или все действия после закрытия окна можно указать там.

fancybox.close(); - остается там же где и был.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!