ASP.Net链接按钮在Firefox(版本8)中不起作用
我已经开发了一个ASP.NET应用程序用于Facebook。它有一个简单的链接按钮,用于在旧版本的Firefox中正常工作ASP.Net链接按钮在Firefox(版本8)中不起作用,asp.net,facebook,facebook-graph-api,facebook-c#-sdk,Asp.net,Facebook,Facebook Graph Api,Facebook C# Sdk,我已经开发了一个ASP.NET应用程序用于Facebook。它有一个简单的链接按钮,用于在旧版本的Firefox中正常工作 <asp:LinkButton ID="lbtnLogOut" runat="server">Disconnect</asp:LinkButton> Protected Sub lbtnLogOut_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtnLog
<asp:LinkButton ID="lbtnLogOut" runat="server">Disconnect</asp:LinkButton>
Protected Sub lbtnLogOut_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtnLogOut.Click
Response.Redirect(Request.ApplicationPath & "/login.aspx")
End Sub
,但它没有为我提供任何解决方案。
想知道这个问题是由Facebook iFrame还是Firefox引起的?任何帮助都将不胜感激。看起来您并没有为LinkButton分配事件处理程序
<asp:LinkButton ID="LinkButton1" runat="server" Text="Click" OnClick="LinkButton1_Click" />
您发布的JavaScript是\uuu doPostBack
函数,它不是LinkButton独有的。LinkButtons使用\uuuDoPostBack
触发回发,这是正确的,但除非为LinkButton分配事件处理程序,否则不会调用该函数
出于调试目的,我还将CausesValidation设置为false,以确保验证不会干扰单击事件。只需在.master文件或其他适当的文件中,在结束标记之前使用此代码:
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.aspnetForm;
}
else {
theform = document.forms["aspnetForm"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
将“aspnetForm”替换为您自己的。尝试在标记中显式声明事件处理程序。出于调试目的,我还将CausesValidation
设置为false。验证也可能是罪魁祸首。处理lbtnLogOut。单击-它不会自动处理链接按钮的OnClick属性吗?链接按钮的HTML呈现代码将被删除。因此,单击锚定链接调用uu doPostBack函数,该函数反过来执行form.Submit()OK..问题是这样的。神奇的是,它从今天下午就开始工作了。我的假设是,由于我的应用程序是一个Facebook应用程序(显示在Facebook网站的iFrame中),Facebook API与我的代码冲突/导致一些问题。
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.aspnetForm;
}
else {
theform = document.forms["aspnetForm"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>