history.popstate 不起作用,在浏览器中同时调用前按钮和后按钮



每当我按下后退按钮时,我都会尝试获取以前的状态。在检查中,我可以看到 popstate 函数也被调用为转发按钮。即使执行了 popstate 函数,它也不会返回到以前的状态。我无法理解如何正确协调事件,因为我是前端开发的新手。 提前谢谢!!

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="aid.js">    </script> 
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<div id="one" ng-hide="val_1">{{val_1}} ONE </div>
<div id="two" ng-show="val_2">{{val_2}} TWO </div>
<button id="but" ng-click=myfun()> pressme </button>
</body>
</html>

援助.js

//the js code
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.val_2 = false;
    $scope.val_1 = false;
    $scope.myfun = function () {
        $scope.val_1 = true;
        $scope.val_2 = true;
        history.pushState("","","new");
    }
    window.addEventListener('popstate',function()
    {
    $scope.val_2 = false;
    $scope.val_1 = false;
    });
});

查看 https://developer.mozilla.org/en-US/docs/Web/Events/popstate

Popstate 同时调用前进和后退按钮。

最新更新