2016-05-12 27 views
0

我正在开发一个Web应用程序,并希望让浏览器中的后退按钮更像应用程序。更改后退按钮导致的位置

用户经过这些步骤来发布一条消息: 列表的所有邮件 - >读一个消息 - >写应答 - >变回邮件答复

后,如果用户再点击返回按钮,他将回到页面是他写了回复。首选的行动是回到所有消息的列表。

我试过使用HTML5 History API在发布后删除“写回复”和“读取一条消息”的历史记录,但似乎无法做到这一点。

是否有任何其他方式使其表现得像我想要的,还是应该让它保持原样?我知道你不应该惹后退按钮,但我真的认为这会使它更合乎逻辑。

+0

阅读本文http://stackoverflow.com/questions/31528432/how-do-i-use-window-history-in-javascript让我们知道这是否解决了您的问题。 – Rahul

回答

1

你可以尝试这样做:

用户写的回复后,您可以执行这个js

// 1) push a fake state in the history 
    history.pushState({ foo: "test" }, "test", "test.html"); 

// 2) add a listener when the user press the back button 
    window.addEventListener('popstate', function(event) { 
     //redirect user where you want 
     window.location.href = '...'; 
    }, false); 
  • 记住代码@点1将改变您的网址地址栏,所以如果你在查询字符串中使用带有一些片段或其他信息的URL,你必须处理它们。
  • 对于代码@point2,如果您处于单个页面的Web应用程序中,则必须在完成此操作后删除该侦听器。

但是,这是一个可能的解决方案,但不知道环境,我不知道是否可以满足您的要求。 希望这可以帮助!

+0

这工作得很好!谢谢! – Thomas

+0

很高兴满足您的需求! – Pierfrancesco