如何在后退/前进中保存动态生成的表单的内容?

时间:2011-10-20 03:14:34

标签: javascript browser-history

我目前正在编写一个工具,允许用户通过动态输入指定一组复杂的数据。通过使用GET查询[例如main.html?inputs = {...}]

,可以使用输入预填充工具

不幸的是,如果您正常运行该站点[访问main.html],然后提交表单并决定返回上一页,所有状态都将丢失。

我可以非常简单地序列化当前的输入,如果它是有效的,那么类似于下面的内容将起作用。

   document.location.href = "main.html?input={...}";
   form.submitForm();

有没有办法发送当前的URL [为了浏览器历史记录]并继续执行我的代码?或者,有没有办法在导航到下一页之前在历史记录中插入其他条目?

1 个答案:

答案 0 :(得分:0)

使用location的hash属性(例如:main.html#someHashValue)来模拟页面更改。它将改变URL,因此允许用户在浏览器中使用正常的后退和前进按钮,但不会导致刷新。

你在javascript中所要做的就是每秒检查哈希值,看看它是否已经改变。您可以在我的网站MarshallBrekka.com

上查看此技术的示例