jQuery FancyBox阻止ASP.NET Logout链接起作用

时间:2012-02-06 09:25:36

标签: jquery asp.net fancybox

我在我的ASP.NET网站上使用FancyBox jQuery插件(http://fancybox.net/)并且遇到了一个小问题但很烦人。

该站点使用默认的ASP.NET登录控件,然后显示一些在FancyBox中打开表单的链接 - 这一切都很有效。如果我点击任何FancyBox链接,然后再点击注销链接(由LoginStatus控件提供),一切正常。

但是,如果我单击其中一个FancyBox链接然后关闭它,则注销链接不再有效,根本没有任何反应 - 看起来好像回发由于某种原因没有触发。

我做了一些搜索,但没有遇到过类似问题的人 - 有没有人见过这个问题?

提前致谢

更新:在IE调试器的帮助下,我已将问题跟踪到JavaScript错误 -

function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    theForm.__EVENTTARGET.value = eventTarget;
    theForm.__EVENTARGUMENT.value = eventArgument;
    theForm.submit();
}

更具体地说,在设置eventtarget的行上,我收到的错误是 -

  

SCRIPT5007:无法设置属性“value”的值:object为null或undefined

更新2:我已经进行了临时修复 - 基本上我只是挂钩onClosed事件并在那时重新加载页面 -

$("#form_popup").fancybox({ 
'scrolling': 'no', 
'titleShow': true, 
'onClosed' : function() { 
    location.reload(); 
} });

当然问题是页面将从头开始完全重新加载,而不是使用jQuery,但至少它可以工作!

1 个答案:

答案 0 :(得分:0)

对于有同样问题的人,我用这个黑客修复了这个

$("#form_popup").fancybox({ 
 'scrolling': 'no', 
 'titleShow': true, 
 'onClosed' : function() { 
 location.reload(); 
} });

因此,只要按下关闭按钮就可以重新加载页面,从而解决问题。