百度搞了一个分享平台,好吧,试用一下,发现分享成功,但各平台下跳转回来的地址存在IE6下参数获取错误的问题。
问题重现(新浪微博为例):
分享平台获取的地址一般为http://www.domain.com/test.asp?id=100#0-tsina-111111-111111-de70028302b856c997bc35861eb52ece,分享平台都有自己的短网址,一般为http://t.cn/AbCdEf,点击的时候做了一次跳转到分享平台获取的地址。但是由于添加了#号后面的内容,在IE6浏览器下Request得到的ID值严重不正确,居然包含#号后面的所有字符。
问题简化:
1.asp
<a href="2.asp">测试</a>
2.asp
Response.Redirect("3.asp?ID=14#efefef")
3.asp
Response.Write(Request("ID"))
IE6下,单击1.asp里的链接 或 直接访问2.asp,输出的值为:14#efefef
解决问题:
1. 过滤掉#及后面的所有字符
2. 添加空的参数,例如3.asp?ID=14&TP=#efefef
追究原由:
测试了FF7,FF8,FF(8),Chrome(15),Safari(5.1)均未发现问题。查询网络发现 这篇 文章和我碰到了同样的问题,和几个同事讨论均认为有可能是IE6在跳转时发生的问题,该问题已经提交到微软在线论坛等待MVP反馈。如有描述错误之处,请指教。
PS:
12.16 MVP回复可能为IE6的某BUG,并提供同样问题的链接 Internet Explorer 6 and redirected anchor links。


(图为转载)