Response.Redirect с привязкой #, не работает в IE7.
-
03-07-2019 - |
Вопрос
Response.Redirect(string.Format("myprofile.aspx?uid={0}&result=saved#main",user.UserID));
указанный код переводится на
IE7 - myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved
ФФ- myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved#main
почему IE7 удаляет мой якорь?
редактировать:Я должен упомянуть, что использую это вместе с элементом управления вкладками пользовательского интерфейса jQuery.Я хочу, чтобы обратная передача переходила на определенную вкладку.
Решение
Это было бы довольно сложно, но если IE не работает, вы можете сделать это.
также передайте параметр, например.
uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved&hash=main#main
Затем на вашей странице (перед тегом закрытия тела или в качестве события загрузки), только для IE, извлеките параметр, если он присутствует, и установите хеш вручную.
<!--[if IE]>
<script>
if(document.location.href.indexOf('&hash=') != -1){
//extract value from url...
document.location.hash = extractedValue;
}
</script>
<![endif]-->
Другие советы
Может быть, это проблема регресса IE6?
Ты пробовал обойти это добавив к нему знак &?
я использовал RegisterClientScriptBlock
выдавать window.location
.
Что-то вроде этого:
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);