我有一个AJAXed页面,但我还向用户提供了一个查询字符串,以便他/她可以在URL中输入查询字符串以再次查看同一页面. (想想谷歌地图及其“分享链接”功能).
当AJAX请求发生时,我更新呈现给用户的查询字符串,但实际的URL不会更改.问题是,如果用户刷新页面,则从AJAX创建的所有DOM元素都会消失.
我想要做的是让javascript捕获刷新事件,而不是刷新页面,将用户重定向到页面加上查询字符串.
即如果查询字符串是:?data = blah& stuff = bleh
然后刷新将引导用户访问www.example.com/?data=blah\u0026amp;stuff=bleh而不是刷新页面回到www.example.com
解决方法:
你不能改变查询字符串…没有浏览器实际离开页面并获取一个新的(有点杀死AJAX点).
你可以去哈希,比如:www.example.com/#data=blah\u0026amp;stuff=bleh
在你的脚本中只需设置window.location.hash,例如:
window.location.hash = "data=blah$stuff=bleh";
当您的页面加载时,您需要实际使用哈希…例如:使用它作为数据参数来执行您之前进行的相同AJAX调用.