Response.Redirect с # якоря, не работает в IE7 - PullRequest
0 голосов
/ 01 января 2009
Response.Redirect(string.Format("myprofile.aspx?uid={0}&result=saved#main",user.UserID));

указанный код переводится в

IE7 - myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved

FF - myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved#main

почему IE7 сбрасывает мой якорь?

edit: я должен упомянуть, что я использую это в сочетании с управлением вкладками пользовательского интерфейса jQuery. Я хочу, чтобы постбэк был переведен на конкретную вкладку.

Ответы [ 3 ]

1 голос
/ 02 января 2009

Это было бы неплохо, но если 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]-->
1 голос
/ 01 января 2009

Может быть, это проблема регрессии в IE6?

Вы пытались обойти это , добавив к нему &?

0 голосов
/ 09 ноября 2011

Я использовал 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);
...