【问题标题】:Retain anchor when redirecting subdomain (IE)重定向子域 (IE) 时保留锚点
【发布时间】:2011-09-02 00:56:38
【问题描述】:

火狐:
http://example.com/about/#anchor -> http://www.example.com/about/#anchor

Internet Explorer 6-8:
http://example.com/about/#anchor -> http://www.example.com/about/

为什么锚在 IE 中掉线了,我该怎么办? (不删除查询字符串,仅删除#xyz 部分)

PHP 标头或 javascript 重定向是我唯一的选择吗?感谢所有提示。

更新:似乎没有将哈希发送到服务器。将 PHP 301 标头和 javascript 重定向(与 location.hash)结合起来会是一个好的解决方案吗?

【问题讨论】:

  • 锚不会发送到服务器stackoverflow.com/questions/1665200/…,所以服务器端无能为力。这是第 n 个 IE 错误。我现在尝试了,Firefox 和 Chrome 都执行了正确的重定向而没有获得锚点。可悲的是 Safari4 确实将锚保留为 IE8。

标签: internet-explorer wordpress redirect query-string anchor


【解决方案1】:

锚永远不会发送到服务器,因此没有服务器端解决方案可以保留它们。

【讨论】:

    【解决方案2】:

    在 Tomcat/JSP 中遇到过类似的问题,不了解 PHP。在 Tomcat 中,规则是 #anchor 仅适用于浏览器/用户代理,因此您无法获取它。我的解决方法是在页面中使用 Javascript 来实现重定向。我的建议是,如果你不能很快让它在 PHP 中运行,那么请开始尝试 Javascript 解决方法。

    【讨论】:

      【解决方案3】:

      在服务器端重定向期间,只能使用服务器端锚点。它们必须有一个 ID(尽管我不确定它们是否必须以编程方式创建)

      您也可以传递一个参数并使用 onload 将焦点移动到 ID 或超链接。

      【讨论】:

        猜你喜欢
        • 2019-10-31
        • 1970-01-01
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-08
        相关资源
        最近更新 更多