angularjs - 如何在 AngularJS 中禁用 IE8 和 IE9 上的 #hashbang 重定向

标签 angularjs hashbang

我有一个 AngularJS(v 1.2.19)应用程序,它由两个单独的 html 页面组成(或者实际上这是一个文件夹中的两个单独的 AngularJS 应用程序):

  • index.html
  • 编辑.html

我在 IE 8 和 9 上遇到一些众所周知的兼容性问题(两者都不支持 html5 历史记录 API)。 我的配置包含: $locationProvider.html5Mode(true).hashPrefix('!');

我的应用程序中没有任何路由 - index.html 和 edit.html 可以被视为单独的 AngularJS 应用程序 - 具有单独的 AngularJS 初始化等。

问题如下: 每当我打开链接: http://server/apphttp://server/app/index.html 一切正常。

每当我从 ng-click 或直接在浏览器中打开链接:http://server/app/edit.html 时,页面都会自动重定向到 http://server/#!app/edit.html

如何禁用“hashbang”重定向? Edit.html不是index.html的一部分,因此应该直接加载它,而不需要任何index.html重定向和“散列”路由。

我尝试了下面的代码,但它导致了重定向的无限循环......

<!--[if lt IE 10]>
    <script>   
        window.location = window.location.href.replace( /#.*/, "");
    </script>
<![endif]-->

感谢任何帮助。

最佳答案

尝试禁用 html5mode $locationProvider.html5Mode(false).hashPrefix('!'); 或完全删除该字符串。

关于angularjs - 如何在 AngularJS 中禁用 IE8 和 IE9 上的 #hashbang 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797570/

相关文章:

javascript - 使用自定义 Controller 在不同 View 中共享范围

angularjs - 然后将数据返回到 Controller Angular

javascript - ngRepeat 按数组属性过滤

javascript - 我不应该使用 backbone.js 因为它使用 hashbangs 吗?

AJAX 用问号而不是 hashbang 抓取

javascript - 如果在 angularjs 中启用了 html5mode,如何重新加载页面?

javascript - 将 Angularjs 代码包装在闭包中的正确方法是什么?

angularjs - 在 Angular 中创建 "App-Wide"消息系统

php - AJAX 爬虫(hashbang 转换)

ajax - 在 HTML 快照中为 SEO 的 hash-bang URL 添加什么?