Response.Redirect mit # Anker, funktioniert nicht in IE7
-
03-07-2019 - |
Frage
Response.Redirect(string.Format("myprofile.aspx?uid={0}&result=saved#main",user.UserID));
wobei der Code übersetzt
IE7 - myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved
FF - myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved#main
warum IE7 meinen Anker fallen lassen?
edit: Ich soll erwähnen, ich dies mit jQuery UI Registerkarte in Verbindung verwenden. Ich will die Postbacks auf die Registerkarte in einem bestimmten Tab.
Lösung
Es wäre ganz der Hack, aber wenn IE nicht verhalten, können Sie dies tun.
als auch eine param geben, z.
uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved&hash=main#main
Dann auf Ihrer Seite (vor dem Körper schließen Tag oder als Onload-Ereignis), nur für IE, extrahieren Sie die Parameter, falls vorhanden und stellen Sie den Hash manuell.
<!--[if IE]>
<script>
if(document.location.href.indexOf('&hash=') != -1){
//extract value from url...
document.location.hash = extractedValue;
}
</script>
<![endif]-->
Andere Tipps
Vielleicht ist es eine Regression Ausgabe von IE6?
Haben Sie versucht, um daran zu arbeiten indem sie sie mit einem &
Ich benutzen RegisterClientScriptBlock
window.location
zu erteilen.
So etwas wie folgt aus:
string url = String.Format("{0}RegForm.aspx?regId={1}#A", this.CurrentFolderUrl, this.RegId);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "redirectToClientPage", String.Format("window.location='{0}'", url), true);