码迷,mamicode.com
首页 > Windows程序 > 详细

angular 1.26 版本 window.history.back() 自动去顶部

时间:2014-12-29 15:05:06      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

在1.26版本,在url ("www.example.com#xx"),接着按back,会自动调到顶部,这是因为angular的默认设置

 

只要在config注入$AnchorScrollProvider, 接着跑这个就行了$anchorScrollProvider.disableAutoScrolling();

 

奇怪的是,chrome游览器本来就没有问题,这回会认为不需要改默认设置,但是在不是chrome游览器就会发现这问题。

 

误区:

chrome在window.history.back时,会马上拿到当下的pageYOffeset,然后在回去之前的位置

FF游览器会拿不到当下的pageYOffset,但是还是可以回到之前给hash前的位置。

以上过程都可以回到原本的位置,但是在拿pageYOffset就是不一样。

 

在原码会发现,angular是要scroll 去顶端,但是在没有设置默认为disable时,chrome应该是要scroll去顶端,但是没有(这是bug)

*此测试只在chrome和firefox进行

 

游览器逻辑

var scrollTop = window.pageYOffset|| document.documentElement.scrollTop || document.body.scrollTop;
when history back : 
chrome 先跑event
firefox 先跑scroll

 

angular 1.26 版本 window.history.back() 自动去顶部

标签:

原文地址:http://www.cnblogs.com/stooges/p/4191496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!