How to close fancybox from child window?

Refresh

December 2018

Views

25.6k time

5

parent link:

<a href="feedback.php" id="feed">Provide your feedback here</a>

jQuery code to initiate fancybox is...

$("#feed").fancybox();

codes in feedback.php...

      <html>
        <head>
<script language="javascript">    
$(document).ready(function(){
    $("#feed_submit").click(function(){
    //Name is alerted
    alert($("#name").val());

    //code to close fancy box(Not working)
    $.fancybox.close();

    });
    });
</script>
        </head>
        <body>
        <form method="post" name="feedback" id="feedback" action="">
                <div>
                    <label>name</label>
                    <input type="text" name="name" id="name"/>
                </div>
                <div>
                    <label>feedback</label>
                    <input type="text" name="content" id="content"/>
                </div>
        <div><input type="button" name="feed_submit" id="submit" value="submit"></div>
    </form>    
    </body>
    </html>

Once submit button is clicked i need to close fancy box in this page itself with jquery

i have tried using

$.fancybox.close();
parent.$.fancybox.close();

But this doesn't work for me. If there is any option to close inside this ajax form please let me know.

10 answers

0

У меня была такая же проблема, но с ASP.NET.

В основном, на странице, я открываю страницу (с помощью элемента управления формы внутри), как это:

$.fancybox({
                href: '/ContactUs.aspx',
                type: 'iframe',
                padding: 60,
                width: 465,
                height: 670,
                maxWidth: 465,
                maxHeight: 670,
            });

Когда я щелкаю близко от FancyBox, она работает, но если я представить его первый ТОГДА закрыть его, fancyBoxне будет закрыто, даже ты страница находится в том же домене.

В конце концов, я узнал, что вы должны установить Autosize ложь при открытии FancyBox:

 $.fancybox({
                href: '/ContactUs.aspx',
                type: 'iframe',
                padding: 60,
                width: 465,
                height: 670,
                maxWidth: 465,
                maxHeight: 670,
                autoSize: false
            });

Теперь он должен работать. Пожалуйста, ответьте, если это работает для всех остальных. Приветствия.

Будет

0

Он будет работать наверняка, просто скопировать и вставить его:

<a href="javascript:;" onclick="jQuery('.fancybox-close').fancybox().trigger('click');">Close from Inside</a>

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

Удачи с программированием :)

0

// в дочернем окне или во встроенном кадре поставить эту функцию:

function closeIframe(){ parent.closeIframeMain(); }

// и ссылку, чтобы закрыть это окно

<a onclick="closeIframe();" href="#">Close window</a>

// затем на родительском окне поставить эту функцию:

function closeIframeMain(){ jQuery("#fancybox-close").trigger("click"); }

1

Когда вы используете FancyBox с типом: IFRAME, в окне IFrame вы должны вставить все ваши библиотеки, как JQuery и т.д. Затем, чтобы закрыть окно IFrame фантазии просто использовать родительский $ fancybox.close ()..

Помните FancyBox с типом «IFRAME» открывается в новом окне, FancyBox с другими типами открывается в том же окне.

-1

parent.jQuery.fancybox.close (); с. $. - creashes в IE8. При этом - все ок.

7

Пытаться

window.parent.$.fancybox.close();

при условии , что $.fancybox.close(); работает в родительском окне.

1

Столкнувшись с той же проблемой, что это единственное решение, я мог находками, что сделал трюк:

сам код:

parent.jQuery.fancybox.close();

он работает в функции как таковой:

jQuery("#cancelId").click(function(){
    parent.jQuery.fancybox.close();
});

надеюсь, что это помогает, Naore

0
$.fn.fancybox.close();

Это работает ?

10

Следующий код должен работать, и работал в течение многих

parent.$.fn.fancybox.close();

Тем не менее, я видел, например , в этом вопросе , JQuery запущен в режиме noConflict, без ведома пользователя. Если это дело для вас, вы должны изменить свой скрипт для

parent.jQuery.fn.fancybox.close();

Если ни одна из этих работ, пожалуйста, используйте инструмент как Firebug для Firefox, или в консоль разработчика Chrome, чтобы узнать, есть ли сообщение об ошибке, и сообщить нам, что это такое.

2

Пытаться:

$("#fancybox-close").trigger('click');