html – 在Safari中使用location.hash滚动页面

html – 在Safari中使用location.hash滚动页面,第1张

概述我有一个论坛页面,显示当前所选邮件下方的邮件树状视图.当您单击树中的消息时,使用 AJAX将新消息正文加载到页面顶部附近的div中,然后运行以下代码: window.location.hash = "page_top"; 当然,“page_top”是靠近页面顶部的锚元素,因此新加载的消息体将滚动到视图中. 这适用于除Safari之外的所有浏览器.在Safari(在PC和iPhone上测试),它仅在 我有一个论坛页面,显示当前所选邮件下方的邮件树状视图.当您单击树中的消息时,使用 AJAX将新消息正文加载到页面顶部附近的div中,然后运行以下代码:

window.location.hash = "page_top";

当然,“page_top”是靠近页面顶部的锚元素,因此新加载的消息体将滚动到视图中.

这适用于除Safari之外的所有浏览器.在Safari(在PC和iPhone上测试),它仅在您第一次设置location.hash时才有效.如果再次设置,则页面不会滚动.

最终结果是新加载的邮件正文不会滚动到Safari中的视图中,并且每次从树中选择新邮件时都必须滚动回页面顶部.

为什么Safari不喜欢这个,有什么办法可以解决它吗?

编辑:

我猜这与你可以通过Google搜索关于location.hash和Safari找到的BUG有关.似乎Safari曾经有一个错误,如果你将哈希设置为相同的值两次,它将导致它重新加载页面.我猜他们什么时候修复了这个BUG,他们把它修复得太彻底了,并且当你再次将哈希设置为相同的值时停止它做任何事情.

http://www.howtocreate.co.uk/safari/locationHashBug.html

解决方法 您可以先重置它:

window.location.hash = "";window.location.hash = "page_top";
总结

以上是内存溢出为你收集整理的html – 在Safari中使用location.hash滚动页面全部内容,希望文章能够帮你解决html – 在Safari中使用location.hash滚动页面所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1071398.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存