pushState方法不起作用

时间:2018-07-13 13:40:28

标签: javascript

您好,我正在尝试使用window.history.pushState方法来更改URL而不重新加载页面,但是它无法正常工作。例如,我有一个地址:localhost:1234/jobs,并且想将其更改为localhost:1234/jobs?jobId=1#update,所以我尝试通过自己的方法进行操作:

changeAddress(jobId){    
    window.history.pushState(null, "Job update", "/jobs?jobId=" + jobId + "#update");
};

但是它不起作用,此方法仅在1秒钟内发出了良好的地址,并且恢复了旧值。 我做了一个应该在更改网址后激活的方法-

$(window).on('popstate', function(){
    console.log(window.location.href);            
});

但是什么也没发生。我在做什么错了?

好的,所以也许在我的代码示例之后,一切都会更加清楚。 我在.jsp文件中有一个元素:

<i class="fas fa-edit fa-fw"
                       data-tooltip="tooltip"
                       title="Edit this job"
                       ng-click="goJobModal(job.id);$event.stopPropagation()"></i>

按下此按钮后,应执行方法goJobModal:

$scope.goJobModal = function (jobId) {
      if(jobId){
          window.history.pushState=(null, "Updating job, "/jobs?jobId=" + jobId + "#update");          
      } else {
          window.history.pushState(null, "Creating job", "/jobs#create");              
      }
    };

此方法仅使用window.history.pushState更改url,然后应触发popstate事件:

$(window).on('popstate', function(){
    console.log(window.location.href);
    $scope.makeActionWithHashParam();
});

但是不是。

0 个答案:

没有答案