【发布时间】:2012-07-19 22:53:24
【问题描述】:
我正在开发一个使用 Javascript 进行样式设置的表单,该表单将用于提交许多不同的内容。但是,大多数情况下,不同的东西只会略有不同,因此如果当您按下浏览器上的 Back 按钮时,表单与您提交前离开时的表单完全相同,这将真正使用户受益表格。
注意:这在使用普通的 HTML/Javascript-less 表单时已经有效,我要问的问题是如何在使用 Javascript 隐藏/替换输入字段等时保留此功能。
我尝试过History.js 和 HTML5 的replaceState(),但似乎没有任何效果。此外,如果有帮助,这将是一个需要安装最新浏览器的私人网站,因此请不要犹豫,推荐仅在最新浏览器版本中可用的解决方案。
非常感谢!
更新 #1:这是一张更能说明我需要的图片。
更新 #2:好的,我成功破解了它,包括跨浏览器。明天睡了一会儿,我会发布解决方案。
【问题讨论】:
-
当您提交 ajax 以创建历史条目时,您不能在 url 末尾使用 # (yourUrl.html#fake1) 吗?在他们提交之前有过吗?
-
对不起!意思是说我使用 Javascript 进行表单样式设置,而不是 AJAX 提交哈哈!已更新。
-
这不是我真正想要的。如果我在输入数据后刷新页面,表单应该是空的。如果我输入日期,提交表单,然后通过浏览器按 Back,表单仍应包含数据并显示页面所做的任何 Javascript 更改。有点像 Javascript/DOM 更改等的缓存。
-
用图片更新了问题,希望能更好地说明问题。
标签: javascript html caching browser history.js