点击后历史记录.js是否保留在页面上
Does history.js stay on page after click?
我有一个使用 AJAX 更新内容的网站。它在开发时考虑了渐进式增强功能,因此它还处理查询字符串。
使用 PHP 的网址:
index.php/products?cat=1&colors=1
使用 AJAX 的网址:
index.php/products (Currently stays like this for the life of this page)
想要以这个网址结束:
index.php/products#cat=1&colors=1
我想使用历史记录.js但我注意到对于HTML5浏览器,它会将URL更改为看起来像第一个URL。(!!)
历史.js只是修改window.location
而没有真正跳到链接吗?如果没有,那么这意味着整个页面将使用PHP重新加载,从而违背了我的脚本的目的。如果是这种情况,此库是否有解决方法?
从history.js
文档中,该库提供了pushState
和replaceState
功能。 Mozilla关于操纵浏览器历史记录的文章值得一读,以帮助理解这意味着什么,正如文章直接说的那样:
URL— 新历史记录条目的 URL 由此参数给出。注意 浏览器在调用 pushState(),但它可能会稍后尝试加载 URL,例如 用户重新启动浏览器后。
因此,当您通过任何方式(包括通过history.js
)使用pushState
时,URL 将被更改,以便用户可以将 URL 添加为书签以稍后返回并获得相同的结果......但浏览器不会由于pushState
操作而加载页面。
此外,请了解 pushState
和 replaceState
之间的区别,因为两者都会更改地址栏中的 URL,但它们对历史记录的影响不同。
相关文章:
- 数据是否等于保留或无法被 jQuery/Sizzle 选择
- expressjs文件上传,检查是否确实有文件发送,指定最大文件大小&保留它的名字
- 是否可以使用后退按钮保留窗体单选选项
- 使用promise.then时,是否可以保留在单击事件调用堆栈中
- 点击后历史记录.js是否保留在页面上
- 在 html 中制作可编辑的表格时,是否最好将表格内容保留在数组中
- 是否有任何保留换行符的 JavaScript 缩小器
- 是否可以在JS中获取保留字(变量,函数,对象名称)的列表
- 我是否需要保留对预加载图像的引用,或者是否可以对它们进行垃圾回收
- 如何检查数字是否有两个小数位,并在必要时保留尾随零
- 如何在 JavaScript 中保留文本框后立即检查文本框是否为空
- Javascript闭包是否总是保留范围变量?
- 我是否可以在 Bootstrap 3 中为折叠手风琴指定一个相对的“数据目标”,同时保留“折叠其他”功能
- Node.js中的域-它是否保留和修改父上下文
- 我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了
- 是否在浏览器中保留敏感数据?可能的
- 是否可以使用JavaScript转储DOM并保留CSS效果和布局
- 是否有任何解决方法可以重新抛出异常并在Javascript中保留堆栈争用
- 我的代码是否有任何错误,不允许在关闭应用程序后在移动浏览器上保留cookie
- 刷新页面后是否可以保留表单(html)内容数据