html5 – 在Chrome中对页面加载进行popstate

我为我的网络应用程序使用历史API,有一个问题。
我做Ajax调用以更新页面上的一些结果,并使用history.pushState()为了更新浏览器的位置栏,没有页面重新加载。然后,当然,我使用window.popstate为了恢复以前的状态,当单击back按钮。

问题是众所周知的 – Chrome和Firefox会以不同的方式处理popstate事件。虽然Firefox不会在第一次加载时触发,但Chrome会执行。我想有Firefox样式,不加载事件,因为它只是更新结果与加载完全相同的事件。除了使用History.js,是否有解决方法?我不喜欢使用它的原因是 – 它需要太多的JS库本身,并且,因为我需要它被实现在CMS已经太多的JS,我想最小化JS我放入它。

所以,想知道是否有一种方法使Chrome不会启动’popstate’负载,或者,有人试图使用History.js作为所有的库捣碎在一起成一个文件。

解决方法

在版本19的Google Chrome中,来自@spliter的解决方案停止工作。正如@johnnymire指出,Chrome 19中的history.state存在,但它为null。

我的解决方法是添加window.history.state!== null到检查状态是否存在window.history:

var popped = ('state' in window.history && window.history.state !== null),initialURL = location.href;

我在所有主要浏览器和Chrome版本19和18中测试它。它看起来像它的工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


h5页面是什么意思
html5复合选择器都有哪些
什么是html5响应式布局
h5页面制作策划怎么做
html5关系选择器有哪些
h5有哪些缓存机制
position中的sticky如何使用
h5页面制作用什么软件
h5链接怎么做
html5层次选择器有哪些
h5是什么意思
localstorage有哪些方法
h5怎么制作点击图标
h5怎么制作倒计时
h5怎么生成链接
h5表格边框怎么设置
h5兼容问题怎么解决
h5怎么做交互设计
h5怎么做进度条
h5怎么加链接