小编Rin*_*rub的帖子

替代在url中使用hashbang来解决IE9问题

我正在使用这些设置在angularjs中创建一个搜索应用程序:

App配置:

    app.config(
    [
        '$locationProvider',
        function ($locationProvider) {
            $locationProvider.html5Mode({
                enabled: true,
                requireBase: false,
                rewriteLinks: false
            });
        }
    ]
);
Run Code Online (Sandbox Code Playgroud)

问题不在于应用程序本身,而是当我试图用IE9访问页面时我根本无法访问它.在做了som阅读之后,我发现IE9忽略了一个url中#之后的所有内容,并将用户重定向回主机url(url中的#之前的所有内容)而html5mode的标准后备是hashbang-mode.$ location的Angular文档

我的问题是,如果有人知道在网址中是否有任何方法可以使用hashbangs,或者是否有其他人有这个问题.如果需要更多文档,请告诉我,我会提供!

编辑:这是在控制器内:

    $scope.$on('$locationChangeSuccess', function () {;
        $scope.searchQuery = $location.search()['q'];
        $scope.search();
    });
Run Code Online (Sandbox Code Playgroud)

编辑:添加$locationProvider.hashPrefix('!');将无法正常工作,因为它只会添加"!" 在网址中的"#"之后.

请参阅angular docs中的图片:

有关locationprovider的Angular文档

javascript url internet-explorer-9 location-provider angularjs

5
推荐指数
1
解决办法
725
查看次数