استجابة.توجيه مع # مرساة, لا يعمل في 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
FF- myprofile.aspx?uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved#main
لماذا IE7 إسقاط المرساة ؟
تحرير:أود أن أذكر أنا باستخدام هذا بالتزامن مع مسج UI عنصر تحكم علامة التبويب.أريد إعادة النشر إلى علامة التبويب محدد علامة التبويب.
المحلول
سيكون تماما الإختراق, ولكن إذا كان أي لا يتصرف, هل يمكن أن تفعل هذا.
تمرير المعلمة أيضا مثل
uid=933fdf8e-1be0-4bc2-a269-ac0b01ba4755&result=saved&hash=main#main
ثم على الصفحة الخاصة بك (قبل الجسم بالقرب من العلامة ، أو onload الحدث) فقط أي استخراج المعلمة إذا كانت موجودة مجموعة التجزئة يدويا.
<!--[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);
لا تنتمي إلى StackOverflow