【问题标题】:Check Browser back button history检查浏览器后退按钮历史记录
【发布时间】:2015-05-18 05:38:12
【问题描述】:

我有一个单页应用程序,并且在一些按钮/链接上调用了一些 Angular js 函数并改变了页面内容。现在因为它是一个单页浏览器,它将保存原始页面的历史记录,而不是被点击并更改内容的 Angular js 链接。但我想将该历史记录存储在最近访问过的页面中,这样如果有人单击浏览器后退按钮,则会加载以前的内容。

例如,

假设我访问了first Google home page them my app and then click on any link which changes the content of page .

Google 主页 (1)> 我的应用 (2)> 点击链接,内容已更改 (3)。

点击浏览器后退按钮时的原始行为 -> back button will load Google home page .

目前我在 (3) 页面,返回按钮会将我发送到 (1) 页面而不是 (2)

预期行为 ->

click on browser back button must move me as 
  (3) then (2) then (1) goggle home page

【问题讨论】:

  • 我也在使用backbone.js的单页应用程序。我使用 html 推送状态来管理浏览器历史记录。
  • 如果该视图有一个深层网址,那么我认为它应该可以按预期工作......

标签: javascript jquery angularjs browser browser-history


【解决方案1】:

您可以在路由器功能中使用 html 推送状态。 例如:

var enablePushState = true
pushState = !!(enablePushState && window.history && window.history.pushState)
if (pushState) // New Browser supported
    Backbone.history.start({ pushState: true, root: "/" }); 
else // Old Browser supported
    Backbone.history.start();

【讨论】:

  • Bxckbone 给出错误(我猜未定义)。我正在尝试使用这个window.history.pushState(stateObj, title, URL);,但无论我在stateobj 中使用什么网址,它只是将我引用到主网址,即'/'
  • 是的,主干未定义,我告诉过你我正在使用主干。是的,你写在这里用窗口代替。在页面源代码中查看演示。 html5.gingerhost.com/new-york
  • 我正在使用 Angular js。
猜你喜欢
  • 2018-10-02
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2012-08-19
  • 2018-06-11
  • 1970-01-01
相关资源
最近更新 更多