我有一个带有表单的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后面的原始窗口。
为了强调这种情况,请注意以下屏幕截图:
亲切的问候和感谢任何可以帮助我的人! :)
EDIT1:目标不是关闭Fancybox。
答案 0 :(得分:1)
您无法重新加载该网站,这将重新加载您的网页(包括fancybox。)
要记住的事情, 你最好改变一个(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应包含来自相同源的代码(相同的域和相同的协议)。