6

我希望拥有它,这样当用户加载我们的页面时,它会检查他们是否在移动设备上,然后将它们重定向到我们网站的移动版本,但保留原始哈希标签他们遵循的链接。我尝试在 javascript 中使用哈希标记设置新位置,它在 Chrome 中有效,但在 Safari 中无效。我读过这只是 Safari 所做的事情。有什么解决方法吗?

4

3 回答 3

4

您应该转义“#”符号,一切都会好起来的

于 2014-05-28T14:15:15.193 回答
4

您必须通过使用 javascript 重定向(因为 javascript 可以读取哈希值)或根据用户代理有条件地返回不同的 html 来执行此操作。

浏览器应该通过 302 保留哈希片段,但通常不会(请参阅下面的 3 岁 webkit 错误),否则哈希片段不会发送到服务器,因此无法手动处理。

https://bugs.webkit.org/show_bug.cgi?id=24175

于 2013-10-08T18:02:44.407 回答
4

实际上,我们刚刚从客户那里得到了一个非常相似的错误报告。

对我们来说,这个场景涉及一个主题标签,#quicklogin/abc123它只在 Safari 中查看该网站时才会出现。这是客户端将加载的初始 URL 的一部分,它将向它们显示一个备用登录屏幕。在 Safari 中直接访问 URL 时,浏览器会删除整个标签并忽略它。

当我们将其更改为类似#quicklogin/test(或任何其他仅包含字母字符的哈希)时,它工作正常。加载站点然后在两个单独的步骤中手动应用哈希标记时,它也可以正常工作。

所以我们的结论是,在 Safari 中包含数值的主题标签可能有问题。

于 2012-06-15T16:48:12.890 回答