// 替换当前浏览器history的最后一项记录。
history.replaceState([data], [title], [url]);
//在当前history的中,添加一项记录。
history.pushState([data], [title], [url]);
//1). In Firefox data is limited to 640k characters.
//2). 参数 title 为字符串,当前浏览器一般忽略它。
//3). url 默认是相对当前路径。支持. / .. 路径表示。
注意: 对history的修改,是受同源策略限制的。
//example:当前页面:www.google.com.hk
history.pushState(null, null, 'hello');
www.google.com.hk ----> www.google.com.hk/hello
history.pushState(null, null, '#jack');
www.google.com.hk/hello ----> www.google.com.hk/hello#jack
history.pushState(null, null, 'http:www.baidu.com');//ERROR
//后退、前进按钮,将触发该事件。
window.addEventListener('popstate', function(e) {
// e.state is equal to the data-attribute of the last image we clicked
});
注意:在Android原生浏览器、Chrome (prior to v34) 、 Safari 上,页面第一次加载的时候,会自动触发该事件。
//历史记录变更就触发,包括:参数、hash、路径的变更。
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
// 1. pushState / replaceState 不会触发该事件;
// 2. 用户的点击动作(后退、a链接)会触发事件。
history.pushState({page: 1}, "title 1", "?page=1");
history.pushState({page: 2}, "title 2", "?page=2");
history.replaceState({page: 3}, "title 3", "?page=3");
history.back(); // alerts "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // alerts "location: http://example.com/example.html, state: null
history.go(2); // alerts "location: http://example.com/example.html?page=3, state: {"page":3}
// 参考:
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
https://css-tricks.com/using-the-html5-history-api/
分享到:
相关推荐
connect-history-api-fallback, 返回到使用 HTML 5历史记录API的应用程序的回退到 index.html connect-history-api-fallback通过指定索引页面向代理请求请求中间件,这对于使用HTML5历史API的单页应用程序。...
HTML5的History API是现代前端开发中的一个重要特性,它极大地改进了浏览器的历史管理,使得开发者可以更加灵活地控制用户在浏览器中的浏览历史记录。在"前端项目-html5-history-api.zip"这个压缩包中,我们看到的...
**Node.js历史服务器详解——基于HTML5 History API的单页应用解决方案** 在现代Web开发中,单页应用程序(Single Page Application, SPA)已经成为一种主流架构,它提供了更流畅的用户体验和更快的页面加载速度。...
"HistoryAPI:滚动恢复...总结来说,"HistoryAPI:滚动恢复"的Polyfill是为了确保在所有浏览器中都能实现HTML5 History API的滚动恢复功能。通过理解和应用这个Polyfill,开发者可以提高其Web应用的兼容性和用户体验。
HTML5的History API是Web开发中的一个重要特性,它极大地扩展了对浏览器历史记录的控制,使得开发者能够在不刷新页面的情况下改变URL和管理历史记录。在本文中,我们将深入理解History API,尤其是`history.push...
11. **History API**:改进了页面历史管理,使得单页应用可以更好地控制浏览器的前进和后退功能。 12. **Media元素(Audio & Video)**:内建的audio和video元素简化了多媒体内容的集成,支持多种格式,如MP4、WebM...
Ajax与HTML5 History API实践 Ajax与HTML5 History API的结合可以实现页面的无刷新操作,优点是页面不需要刷新,但缺点是无法前进与后退。HTML5的History API提供了pushState和replaceState两个方法,可以解决这个...
系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例,让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美驾驭O(∩_∩)O~,
12. **History API** - 改进了浏览器的历史管理,支持无刷新的页面导航和状态管理。 13. **Fetch API** - 作为XMLHttpRequest的替代,提供了更现代、更易用的异步数据请求方式。 14. **Form控件增强** - 新增了...
以上只是HTML5 API的一部分,实际文档中还包含了其他如拖放API、离线应用缓存、History API、Mutation Observers等众多特性。开发者可以根据需求,通过这份中文版的HTML5 API文档,深入学习并熟练掌握这些工具,提升...
10. **History管理和PushState**:HTML5的History API允许开发者改变浏览器的URL而不进行页面刷新,通过PushState和ReplaceState方法可以创建更友好的单页应用体验。 这个“最新Html5中文API”CHM文件很可能是包含...
HTML5引入了新的History API,包括`history.pushState()`、`history.replaceState()`以及`window.onpopstate`事件,这些API允许我们在不重新加载页面的情况下改变浏览器的URL,提供更好的用户体验。然而,不是所有...
HTML5的History API是现代Web开发中一个重要的进步,它允许开发者在不重新加载整个页面的情况下改变浏览器的历史记录和URL,从而实现平滑的页面导航和无刷新跳转。这个特性对于创建单页应用程序(SPA)和提升用户...
另外,Geolocation API可以获取用户的地理位置信息,离线应用可以通过App Cache API实现,而History API则改进了页面导航体验。 此外,离线储存、拖放功能、画布绘图、SVG矢量图、WebRTC(实时通信)、Web Audio ...
可以完全按照例如Dive Into HTML5书( )或History API规范( )中的描述使用该库 )。 您可以使用以下命令安装此插件: npm install html5-history-api 浏览器支持: history.js -IE8 +和其他浏览器 history....
尽管也存在一些,但由于您只能使用本机HTML5 History API,因此它们相对较小。 如果您打算支持旧版浏览器,那么可以使用History.js。 该通知位于此处,因为History.js没有获得足够的资金来维护,因此它仅在旧版...
HistoryLocation是包装 HTML5 历史 API。 // ececute http://example.com/ import { HashLocation } from 'common-history' ; const hashLocation = new HashLocation ( ) ; // It is executed each time the ...