导航离开页面并返回时,不保留JS页面格式

时间:2012-06-05 17:08:18

标签: javascript jquery .net html css

当我离开时,我有一些页面格式的问题,然后点击浏览器返回页面。

以下是一个例子:

我在下拉列表中的表单上有安全问题,如下所示:

http://i.stack.imgur.com/ib32z.jpg

当用户从下拉列表中选择[输入您自己的问题]时,我会有一些jquery动画显示向下推动表单的CSS更改,并为“自定义安全问题”显示隐藏字段。选中后,表单如下所示: http://i.stack.imgur.com/uVPKo.jpg

现在我的困境是,当我离开这个页面,然后使用浏览器后退按钮导航回来时,我的格式被搞砸了,看起来像这样:

http://i.stack.imgur.com/5Xhpi.jpg

我写的javascript不再在后退按钮上触发,因此浏览器不知道将表单向下移动以适应间距的变化。无论如何,我可以强制document.ready重新加载或清除某种缓存吗?

谢谢!

编辑:对不起,伙计们,我需要将图像重新上传到主机并重新发布。抱歉延误。

1 个答案:

答案 0 :(得分:1)

基本上有四种机制可以在网络上保持状态:

  1. 基于浏览器 - 如果您幸运的话,浏览器会保存表单字段的答案,并在看到具有相同名称的INPUT时重新显示它们;此外,某些浏览器会在前向< =>后退导航
  2. 之间保留一些状态
  3. 基于Cookie - 非常不言自明;使用状态信息保存cookie,稍后再检查以恢复状态
  4. 基于网址 - 导航到您网址的不同哈希值,其中包含您想要的信息(例如“?roll_down = true”)
  5. HTML5 /本地存储 - 如果您有兴趣,请查阅: - )
  6. 我们基本上可以抛出1和4,因为它们都过分依赖浏览器行为/支持,我们无法可靠地依赖所有浏览器来按照我们想要的方式处理它们。留下#2或#3。

    Cookies允许您保存更多信息(与cookie一样多,即大约4k)。 URL允许更少的信息,但它们具有书签功能的额外好处;如果用户将URL保存为书签(或者将其发送给朋友或其他任何链接),则状态仍会保留。

    所以,选择上面的内容,决定如何坚持你的“我的表格滚落”状态......然后是(我认为)你真正感兴趣的部分:你如何检查这种状态并在用户点击“返回”时解决问题?

    那部分我谦卑地推迟到已经回答的另一篇SO帖子: Is there a way to catch the back button event in javascript?