Internet Explorer 忽略 URL 中的 Hashtag
Posted
技术标签:
【中文标题】Internet Explorer 忽略 URL 中的 Hashtag【英文标题】:Internet Explorer ignores Hashtag in URL 【发布时间】:2012-03-30 21:44:08 【问题描述】:我设置了以下 URL 重写规则:
<rules>
<rule name="Clean URL" stopProcessing="true">
<match url="^([A-Za-z0-9]+)([\?A-Za-z0-9#=&]+)?$" />
<action type="Rewrite" url="R:1.aspxR:2" />
</rule>
<rule name="CleanTest" stopProcessing="true">
<match url="^([a-z0-9/]+).aspx([a-zA-Z0-9\?#=&]+)?$" />
<action type="Redirect" url="R:1R:2" />
</rule>
</rules>
这样做是在客户端的地址栏中显示一个干净的(非 .aspx)URL,并将每个干净的 URL 调用重定向到相应的 .aspx 页面。这“通常”工作正常。但是,当我的 URL 包含主题标签时,即 Administration.aspx#first
仅在 IE 中重定向后主题标签丢失,它在 FF/Chrome 中运行良好,这可能是什么原因?
在 Chrome/FF 中点击链接后的结果:
Administration#first
在 IE (9) 中的结果:
Administration
附录:它对 GET 参数非常有效。
链接:Login.aspx?logout=1
IE:Login?logout=1
FF/Chrome:Login?logout=1
【问题讨论】:
【参考方案1】:由于主题标签主要是为了让客户端的浏览器知道在页面内滚动的位置,所以在我看来,并非所有浏览器都将其发送到服务器是合乎逻辑的。但是我不确定规范是怎么说的。
【讨论】:
以上是关于Internet Explorer 忽略 URL 中的 Hashtag的主要内容,如果未能解决你的问题,请参考以下文章
Internet Explorer CSS 属性“过滤器”忽略溢出:可见
Internet Explorer 8 忽略 CSS 中的字体粗细
Internet Explorer 8 忽略了“显示:表格单元”元素的宽度
Internet Explorer (IE11) 忽略 CSS break-inside:避免