使用href设置URL,然后重新加载。在资源管理器中工作,但不能在Chrome中工作

时间:2019-07-09 18:35:52

标签: javascript angularjs

我有一些导航链接可以设置URL,然后触发页面重新加载。

这可以在Internet Exlporer中正常运行,但不能在Chrome中运行。

在Chrome浏览器中,当您单击链接时,您可以看到它在浏览器地址栏中设置了新URL,但是当刷新时,它将重置为旧URL并加载旧页面。这是代码:

<body ng-app="MyApp" ng-cloak>
    <div ng-controller="MyAppController">
    <ul>
        <li><a ng-Click="pageReload()" ng-href="myApp#?appId=application1">Application 1</a></li>
        <li><a ng-Click="pageReload()" ng-href="myApp#?appId=application2">Application 2</a></li>
    </ul>
</body>
myApp.controller('MyAppController', ['$q', '$scope', '$location', function($q, $scope, $location) {
    $scope.appName = $location.search().appId;
    switch ($location.search().appId() {
        case "application1":
            $scope.appId = 1;
            break;
        case "application2":
            $scope.appId = 2;
            break;
    }

    $scope.pageReload = function(scope, elm, attr) {
        location.reload();
    }
}]);

谁能看到为什么它在资源管理器中有效但在Chrome中不起作用?

不幸的是,它不会生成任何错误消息。

1 个答案:

答案 0 :(得分:0)

我无法确定为什么这在Chrome浏览器中不起作用。

我能够这样解决问题:

<body ng-app="MyApp" ng-cloak>
    <div ng-controller="MyAppController">
    <ul>
        <li><a ng-Click="pageReload('myApp#?appId=application1')">Application 1</a></li>
        <li><a ng-Click="pageReload('myApp#?appId=application2')">Application 2</a></li>
    </ul>
</body>
myApp.controller('MyAppController', ['$q', '$scope', '$location', function($q, $scope, $location) {
    $scope.appName = $location.search().appId;
    switch ($location.search().appId() {
        case "application1":
            $scope.appId = 1;
            break;
        case "application2":
            $scope.appId = 2;
            break;
    }

    $scope.pageReload = function(href) {
        location.href = href;
        location.reload();
    }
}]);