【问题标题】:How to pass data along with the back button?如何与返回按钮一起传递数据?
【发布时间】:2012-01-03 15:52:03
【问题描述】:

在 jQuery Mobile 中,我们可以使用 data-rel="back" 或 data-add-back-btn="true" 轻松创建“返回”按钮 但是,当用户单击返回按钮时,我们有没有办法也传回一些自定义数据?

一个常见的场景是我们使用 Ajax 从 page1 转换到 page2。在page2中,用户执行了一些动作,当用户点击“返回”按钮时,page2中这些动作的结果应该传回page1。

到目前为止,我还没有找到合适的解决方案。当您想将 url 参数从 page1 传递到 page2 时(以便 page2 从 page1 获得一些知识),azicchetti 的插件 jquerymobile-router 很有用。但我不确定它如何反向应用(第2页回到第1页)

【问题讨论】:

  • 后退按钮传统上从堆栈中弹出当前上下文并恢复到前一个上下文。听起来您真正想要的是发布到上一个 URL。我不太了解 jQuery,不能说它是如何实现后退按钮的,但我猜你必须使用其他机制来做你想做的事。
  • POST 或 GET(任何与服务器相关的操作)都假定在 page2 中完成,因此 page1 只是在客户端用 page2 的结果做一些事情。

标签: jquery-mobile


【解决方案1】:

我会为此使用 Cookie 或会话。另一种可能是:本地存储。

【讨论】:

  • Cookies/Sessions/Local Storage 唯一关心的是可靠性。我的意思是人们可以在移动设备上禁用 Cookie,并拒绝给定网站的本地存储。至于会话,如果移动失去连接,客户端将失败。我正在考虑拥有一个全局 JavaScript 变量(即 var MyWebApp = {}),并在页面之间共享该全局变量。但是,如果用户刷新页面,这将不起作用。
  • 好吧,我最终得到了三层回退机制在索引移动页面中,我有一个全局 js 变量 + 一些处理设置/获取 localStorage 的逻辑。另外,我还加载了jquery.cookie.js。因此,在 pageshow 事件中,我检查 1. 全局变量是否有我需要的自定义数据。如果不是 2. 检查 cookie 中的数据.. 如果不是 3. 检查 localStorage 希望这就足够了。
猜你喜欢
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 2022-01-24
  • 2012-10-14
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多