我试图在重新加载页面时强制我的网站滚动到顶部,并且除了不支持卸载前的 iOS 之外,它在任何地方都可以工作,我想知道是否有任何其他事件在刷新页面时触发。
适用于所有其他浏览器的解决方案
$(window).on('beforeunload', function(){
$(window).scrollTop(0);
});
我在iOS上尝试过但没有运气
$(window).on('pageshow', function(){
$(window).scrollTop(0);
});
$(window).on('pageshow', function(){
$(window).scrollTop(0);
});
$(window).on('popstate', function(){
$(window).scrollTop(0);
});
我检查过的线程
移动设备上的 jQuery beforeunload 事件处理程序的替代方法
iPhone 上是否不支持 onbeforeunload 事件?
有没有替代方法可以在移动野生动物园中使用onbefore卸载?
window.onbeforeunload在iPad上不起作用?
当窗口、文档及其资源即将卸载时,将触发beforeunload
事件。
所以这就像你试图让页面滚动到顶部......然后,让页面刷新。
刷新后让它滚动到顶部怎么样?作为要执行的第一件事...
普通的 JavaScript scrollTop 属性应该在脚本标签的最开头执行...当页面加载时。
window.scrollTop = 0;
但这将确保页面在任何加载时都在其顶部加载......也从另一个页面加载。如果您希望 scrollTop仅在"自我重新加载"时发生,请尝试以下操作:
// Retreive the previous pageName
var previousPageName = localStorage.getItem("pageName");
// Give a unique name to the actual page
var pageName = "About Us";
// Then store it for a future load
localStorage.setItem("pageName", pagename);
// Now check if the previous pageName was the same as now
// If so, then scroll to top
if(pageName == previousPageName){
window.scrollTop = 0;
}