更改位置哈希后返回上一个URL

时间:2015-09-05 20:42:53

标签: javascript angularjs

我的代码是:

 $rootScope.$on("$locationChangeSuccess", function () {
                    if( $location.$$path.startsWith('/room/') ){
                        $location.hash('container');
                        $anchorScroll();
                    }                    
                });

在我的room页面上,视图滚动到我拥有ID为container的元素的位置。但是,我的网址在滚动期间附加了#container,我的后退按钮停止工作。

每当我继续example.com/#/room/123时,我都会被重定向到example.com/#/room/123#container,然后我的后退按钮会指向example.com/#/room/123。因此,每次回击时,URL都会返回example.com/#/room/123,然后运行上面的代码并将哈希添加到代码中。

有什么方法可以防止这种情况发生并保持后退按钮正常工作?

2 个答案:

答案 0 :(得分:1)

改为使用location.replace("#container");

答案 1 :(得分:1)

关注Drazen's tip后,我设法通过替换

对问题进行排序
$location.hash('container');

$location.hash('container').replace();