概述:我正在使用JQuery Colorbox在我的网站上处理订单时显示一个小的加载图标。对于一小部分用户来说,颜色框不会自行关闭而只会卡住。这是基本概念:
订单页面使用以下方法将链接加载到颜色框中:
$(document).ready(function () {
$("[rel=cbox_order]").colorbox({
initialWidth: "100",
initialHeight: "100",
innerWidth: "300",
innerHeight: "100",
iframe: true,
opacity: 0.75,
overlayClose: false,
title: 'Your order is being processed, please wait...',
onLoad: function () {
$('body').css({
overflow: 'hidden'
});
$('#cboxClose').remove();
$('#cboxLoadedContent').css({
'margin-bottom': '0px',
'height': '100%'
});
$(document).unbind("keydown.cbox_close");
},
onComplete: function () {
$('#cboxLoadingGraphic').show();
$('#cboxLoadedContent').css({
'margin-bottom': '0px',
'height': '100%'
});
},
onClosed: function () {
$('body').css({
overflow: 'auto'
});
}
});
$("[rel=cbox_order]").click(function () {
$("#colorbox").attr("style", "padding-bottom: 42px; padding-right: 42px; display: inline; width: 600px; height: 468px; top: 456px; left: 602px;");
});
});
<asp:HyperLink id="lnkConfirm" class="buttonlink" rel="cbox_order" NavigateURL="~/ProcessOrder/ProcessPayment.html" Text="CONFIRM ORDER" runat="server" />
这基本上覆盖了许多位并且STOPS用户在处理订单时关闭窗口。然后,已加载到ColorBox中的页面处理订单并发送确认电子邮件,如下所示:
$(document).ready(function(){
window.top.location.href = '<%=Session["ProcessOrder_Redirect"].ToString()%>';
window.parent.$.fn.colorbox.close();
});
我们的想法是将父窗口重定向到订单确认页面,然后关闭该框(只是为了确认;这在95%的时间都有效)。
问题:这不会一直有效,我看不出原因。我可以确认Session中的值包含有效的URL。我在colorbox.close()之后输入了一个alert(<%=Session["ProcessOrder_Redirect"].ToString()%>);
,它出现(并留在那里)给那些卡住有效URL的用户。我无法重现这个错误,所以我有点卡住了。
我唯一的想法就是那个。重定向不起作用(目前正等待更多信息确认这一点)或B..ColorBox正在窃听并且不会关闭。
任何人都能帮我解开这个谜团吗?
编辑:似乎是重定向搞乱了。任何人都知道为什么这不会一直有效。
由于
答案 0 :(得分:0)
我最终设置了一个手动链接,以便用户在卡住时点击。似乎现在已经对它进行了排序,但仍然不知道是什么导致了这个问题。