Mam fancybox z formą i postem ajax za nim:

 var form = $("#myform");
 var data = form.serialize();
 var url = form.attr("action");
 $.ajax({
     type: 'POST',
     url: url,
     data: data,
 }).done(function() {
     location.reload();
     window.location.reload(true);
 }).fail(function() {}).error(function(httpObj, textStatus) {
     setTimeout(function() {
         $("#user_email").focus();
     }, 100);
     $("#quickSigninError").fadeIn();
     $("#loadingSpinnerPopup").fadeOut();
     $("#submitBtn").prop("disabled", false);
     $("#submitBtnCurrent").prop("disabled", false);
     $("#cancelBtn").prop("disabled", false);
 });

FancyBox działa świetnie Podnosi formularz i przeładowuje FancyBox, gdy występuje ajax.done ().

Problem: Mogę przeładować FancyBox z łatwością, ale teraz moje pytanie brzmi, jak przeładować oryginalne okno za fancybox bez zamykania fancybox.

Aby podkreślić sytuację, zwróć uwagę na następujący zrzut ekranu: Wpisz opis obrazu tutaj

Rodzaj i dzięki za każdego, kto może mi pomóc! :)

EDIT1: Celem nie jest uzyskanie zamkniętej fancyboxa.

0
FastSolutions 12 sierpień 2014, 11:42

2 odpowiedzi

Najlepsza odpowiedź

Nie możesz przeładować witryny, która przeładuje swoją stronę (w tym FancyBox).

  1. Utwórz połączenie AJAX, które daje treść strony
  2. Utwórz kolejną AJAX i zmień zawartość rodzica

Coś, o czym należy pamiętać, lepiej zmienić wszystkie zawartość A (Class Div = "Content") i przymocuj FancyBox do dowolnego obiektu, a nie wewnątrz treści DIV, ponieważ zostanie zmieniony.

$.ajax({
    type: 'POST',
    url: url,
    data: data,
 }).done(function() {
    location.reload();
    // ajax to fetch div content //
    $.get( "ajax/test.html", function( data ) {
      $( ".content" ).html( data );
      alert( "Load was performed." );
    });
 }).fail(function() {}).error(function(httpObj, textStatus) {
    setTimeout(function() {
        $("#user_email").focus();
 }, 100);
    $("#quickSigninError").fadeIn();
    $("#loadingSpinnerPopup").fadeOut();
    $("#submitBtn").prop("disabled", false);
    $("#submitBtnCurrent").prop("disabled", false);
    $("#cancelBtn").prop("disabled", false);
 });
1
Idan Hen 12 sierpień 2014, 07:53

Wewnątrz Iframe Użyj JavaScript:

parent.location.reload();
//or
parent.location.href = 'http://google.com'

Uwaga, że iframe powinno zawierać kod z tego samego pochodzenia (tej samej domeny i tego samego protokołu).

-1
michail_w 12 sierpień 2014, 07:46