我在iPhone Safari浏览器中遇到了一个名为锚标记的问题。它适用于包括Safari在内的桌面浏览器,但不适用于移动Safari。怪异!
例如,我的网址如下:
http://www.example.com/my-example-article-url-is-like.php#articlebottom
以上网址来自简报,它应该转到文章页面的底部段落,我给了这样的id:
<p id="articlebottom">paragraph is here</p>
当我从Newsletter点击上面的URL时,它会转到文章页面,但不是我指定id的底部参数。虽然我可以看到,当它进入Safari的目标页面时,URL中缺少#articlebottom部分。
任何想法都将不胜感激!
答案 0 :(得分:6)
Opera,IE,Chrome和Firefox都会将锚点转移到新页面。但是,Safari在重定向上丢失了锚点。
那么如果您在/
之前添加ID Tag
会怎样?
旧网址路径:
http://www.example.com/my-example-article-url-is-like.php#articlebottom
新网址路径:
http://www.example.com/my-example-article-url-is-like.php/#articlebottom
另一个解决方案是您必须同时删除&#34; www。&#34;来自域并在Safari /路径名中的anchor tag
之前添加正斜杠,然后Safari才能正确响应。 Firefox似乎并不关心,我还没有在IE上进行测试。
答案 1 :(得分:1)
正在尽职尽责并回答任何在Squarespace页面上使用Index导航链接和iOS上的Safari时出现此问题的人。格式化时,我的锚链接无效:
http://sitename.com/page#anchor
然后我试了这个无济于事:
http://sitename.com/page/#anchor"
而不是放弃,点燃我的电脑,并在我尝试的那一天打电话给它:
http://www.sitename.com/page/#anchor
它有效!如果这有助于任何人,那就欢呼吧。
答案 2 :(得分:1)
Safari重定向后丢失了锚标记。因此,请避免任何导致(第二次)重定向的内容。
添加尾随/如果没有像.html / .php(mypage /)这样的前缀
http://www.domain.tdl/mypage/#safari
使用像cURL
这样的工具检查重定向可能很有用curl -I http://www.domain.tdl/mypage/#safari
答案 3 :(得分:0)
我无法在上述解决方案中使用它,因此希望我做了自己的解决方法。
目的:导航到URL“ https://example.com/issues/”后滚动到锚定“ #issues”
<script>
if (window.location.href.search("anchor=issues") > 0) {
window.location.href= "https://example.com/issues/#issues";
}
</script>
Voila!
-
您会发现打开链接“ https://example.com/issues/#issues”后,Safari从锚点滚动到页面顶部,然后单击以编辑URL并单击“提交”按钮,滚动到锚点。
我希望他们能尽快解决它,然后再增加推送通知支持。
答案 4 :(得分:-1)
我一直在为我的客户解决这个问题。我不会说出名字,但我会分享一个我发现的解决方案,它突然将死锚链接恢复生机,并在网站的移动和桌面版本上工作。
我将故障归因于过多的页面/站点脚本和css,我无法更改,因为虽然此站点属于本地业务,但它是具有自己的协议和最佳实践的全球公司网络的一部分。换句话说,我可以指定内联样式来区分页面元素,但在一天结束时页面必须符合公司指南和规则。
这是我的代码片段,体现了我学到的东西:
href="#anchorname" target="_top"
这里的关键是目标标签_top
根据http://www.w3schools.com/tags/att_a_target.asp,默认目标是_self,而你的html生成器可能没有将特定的代码写入你的页面,也就是说因为它是默认的IT,所以不必指定,我的研究表明,通过指定_top作为目标,解决了死链问题。
我希望这个解决方案适合你。