【问题标题】:Refresh Event not working on Firefox browser刷新事件在 Firefox 浏览器上不起作用
【发布时间】:2016-12-04 16:14:10
【问题描述】:

我有一个使用 Angular js 和 Angular ui 路由器构建的应用程序。以下是我的申请网址

http://localhost:8082/sample/#/test/1

在浏览器地址栏中点击回车,页面刷新发生在chrome中, 但它在Firefox中不起作用。但是如果 URL 有任何更改,则刷新在 Firefox 中有效。即使 URL 没有变化,浏览器刷新也应该在输入时起作用。

有人有解决办法吗?

【问题讨论】:

    标签: angularjs firefox web-applications angular-ui-router


    【解决方案1】:

    输入时的刷新不起作用,因为您在网址(锚点)中使用了#。 Anchors 已将页面平滑滚动到页面上的适当元素 id。因此,如果您希望它刷新,请尝试使用pushState 和不带# 的网址。

    【讨论】:

      【解决方案2】:

      如前所述,URL 中的“#”告诉浏览器您正在使用锚点滚动到它并阻止刷新页面。这是包括 chrome 在内的每个浏览器的默认实现。 Angular 使用“#”来防止在页面之间切换时重新加载浏览器。

      解决方案可以使用 HTML5 历史 API,它还可以让您的 url 美化并且不包含“#”。这是通过在您的配置中设置 $locationProvider.html5Mode(true) 来完成的:

      angular.module('sample', [])
      
      .config(function($locationProvider) {
          //etc..
          // use the HTML5 History API
          $locationProvider.html5Mode(true);
      });
      

      【讨论】:

      • 谢谢。但是当我刷新时出现 404 错误(我正在使用嵌套状态)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2011-05-05
      • 2014-12-22
      • 1970-01-01
      • 2016-09-13
      • 2011-07-29
      • 1970-01-01
      相关资源
      最近更新 更多