2011-12-04 26 views
0

查看www.cnn.com。如果向下滚动,请点击底部附近的其中一个链接,然后在浏览器中点击“返回”,您会首先看到页面的顶部加载。一段时间后,浏览器会跳转到您点击链接时的位置。在不同的浏览器中,它可能需要更短或更长的时间,但它真的很烦人。除了在新窗口中打开链接之外,是否有任何已知(或未知)的方法来防止这种情况发生?点击“返回”时如何防止滚动效果

+0

我想说,改变这种不利影响可用性和用户期望的行为,可能不应该在第一时间完成。此外,这不能用JavaScript来完成,但是你的问题只能说明HTML。 –

+0

我注意到iframe也会导致问题。页面在加载之前不会滚动,即使设置了大小也是如此 – patrick

回答

1

无法防止这种情况,因为它由客户端(网络浏览器)维护。但是,在内容数量较少的页面上,“跳跃”不会像需要较长时间才能恢复到内存中的页面那么明显。

当然,您可以在新窗口中打开页面(如您所述)或使用iframe s,但这两者都是不好的解决办法。尽可能减少内容的数量(特别是图像和脚本)。请记住,由于所有大型网站都有这个“问题”,因此用户会习惯它,并且出于这个原因,更有可能将其计算机或浏览器的速度归咎于您的网站。

你不想设计你的网站到需要无论如何都要使用后退按钮。

+0

可以对页面进行脚本编写,以便在完成加载之前不会显示任何内容(所以在跳转发生后),但我同意这将是一个糟糕的主意。最好优化页面加载,以便快速结束跳转。 –

1

这可能与您所能得到的距离相近,但会有明显的闪光。另外,我只在Chrome中试过。其他浏览器可能会有不同的工作。

window.onload = function(){ 
    setTimeout(function(){ 
     document.body.scrollTop = 0; 
    }, 1); 
}; 

无论哪种方式,我倾向于与其他海报同意 - 这个功能在有原因的浏览器存在,并且用户的期待。

相关问题