重新加载窗口而不关闭Fancy Box

时间:2014-08-12 07:42:24

标签: javascript jquery ajax reload

我有一个带有表单的fancybox和一个Ajax帖子:

 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工作得很好提交表单并在Ajax.done()发生时重新加载fancybox。

问题: 我可以轻松地重新加载Fancybox但现在我的问题是如何在不关闭Fancybox的情况下重新加载Fancybox后面的原始窗口。

为了强调这种情况,请注意以下屏幕截图: enter image description here

亲切的问候和感谢任何可以帮助我的人! :)

EDIT1:目标不是关闭Fancybox。

2 个答案:

答案 0 :(得分:1)

您无法重新加载该网站,这将重新加载您的网页(包括fancybox。)

  1. 创建一个将为您提供页面内容的ajax调用
  2. 创建另一个ajax并更改父
  3. 的内容

    要记住的事情, 你最好改变一个(div class =" content")的所有内容 并将fancybox附加到不在内容div内的任何对象,因为它将被更改。

    $.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 :(得分:-1)

内部iframe使用javascript:

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

请注意,iframe应包含来自相同源的代码(相同的域和相同的协议)。