js 监听浏览器回退事件

js 监听浏览器回退事件

我当时是主要解决 angular项目里的一个bug
切换标签页后,点击浏览器回退,标签页的状态没有发生改变

	window.history.pushState('forward', null, '#');
    window.history.forward(1);
    
    // 监听浏览器回退事件的方法
    window.addEventListener("popstate", function(e) {
        refresh(); //写监听到回退事件后  你要做的操作
    }, false);

而且调试时候出现了一个bug 当改变当前标签状态值的时候 currentIndex = 1;然后点回退发现标签还是没回退,
但是console了一下 currentIndex的值 确实改变了, 然后就考虑到页面没有刷新, 就加了

$scope.$apply();

强制刷新试图, 然后就会又报错 $digest already in progress 至于这个报错可以查看
理解和解决angularJS报错apply already in progress

于是就调用 refresh() 将做出的改变放在了方法里, 也不用去强制刷新即可达成目的;

你可能感兴趣的:(js,浏览器事件)