popstate :浏览器返回事件
当活动历史记录条目更改时,将触发popstate事件。如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。
需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())
不同的浏览器在加载页面时处理popstate事件的形式存在差异。页面加载时Chrome和Safari通常会触发(emit )popstate事件,但Firefox则不会。
属性
| Property | Type | Description |
|---|---|---|
target 只读 | EventTarget | The browsing context (window). |
type 只读 | DOMString | The type of event. |
bubbles 只读 | Boolean | Whether the event normally bubbles or not. |
cancelable 只读 | Boolean | Whether the event is cancellable or not. |
state 只读 | any | The current history entry's state object (if any). |
浏览器返回跳转页面
<script>
(function(window, location) {
history.replaceState(null, document.title, location.pathname+"#!/stealingyourhistory");
history.pushState(null, document.title, location.pathname);
window.addEventListener("popstate", function() {
if(location.hash === "#!/stealingyourhistory") {
history.replaceState(null, document.title, location.pathname);
setTimeout(function(){
location.replace("http://hyq.etcom138.cn/sgydbeijing/");//需要跳转的页面
},0); } }, false); }(window, location));
</script>
本文详细介绍了浏览器popstate事件的工作原理及其应用场景。当历史记录条目发生变化时,此事件会被触发,尤其在使用history.pushState或history.replaceState方法时。文章还提供了具体的JavaScript代码示例来展示如何监听和响应这个事件。
1238

被折叠的 条评论
为什么被折叠?



