不确定这是否可能,但我有一个像这个小提琴的AJAX形式:
http://jsfiddle.net/nicorellius/GfeEf/
在我的网站上,它运行正常。我使用JavaScript在表单中进行了简单的验证,但如果用户通过JavaScript,则会向用户显示Campaign Monitor网页:要么是yay,要么是nay。
当用户成功订阅时,如果用户单击或使用CM反向链接,则fancyBox将保留填充的数据。根据我编写脚本的方式,它应该在提交后关闭。
这是Linux和Windows中的Firefox行为。 Chrome实际上会清除页面并删除fancyBox表单。 AJAX部分在这里:
$.ajax({
type : "POST",
cache : false,
url : "http://<comapny_name>.createsend.com/a/b/c/abcdef/",
data : $(this).serializeArray(),
// I've tried both of these commented out pieces to no avail.
//beforeSend : function() {
//$.fancybox.close(true);
//},
//success : function(data) {
//$.fancybox.close(true);
//}
});
所以尽管补充道:
success : function() {
$.fancybox.close(true);
}
到AJAX脚本,提交后我无法关闭它。
修改
我也应该注意,这种现象似乎发生在Firefox,Safari和Opera上。 Chrome的行为与我期望的一样(例如,当点击后退链接时,我会重新加载新页面)。 CM页面正在使用javascript:history.go(-1)
向我发回。
答案 0 :(得分:2)
我不知道广告系列监视器,但为什么不在文档加载时强行关闭你的fancybox?
$(document).ready(function(){
$.fancybox.close(true);
}
答案 1 :(得分:2)
看起来您可能想要答案中的代码:How to close fancybox after Ajax Submit?
(这是提取和修改的部分)
var fancyboxProxy = $.fancybox; //declared before $.ajax
//and then modify your success to:
success : function() {
fancyboxProxy.close();
}
我还会在您的成功函数中尝试一个简单的alert()
或conosle.log()
来确定您是否收到了成功事件,如果您收到该事件,那么您知道它特别是代码问题你正在使用隐藏花式框。