您的位置首页生活百科

history.pushstate;什么意思

history.pushstate;什么意思

的有关信息介绍如下:

history.pushstate;什么意思

你要问的应该是浏览器的history,也就是历史记录;我们都知道在页面中我们可以使用javascript window history,后退到上一页面,但是出于安全考虑,javascript history不允许修改history里已有的url链接(也就是历史记录里面的页面地址),但可以使用pushState(相当于进栈意思)方法往history里增加url链接,并且提供popState事件(相当于出栈)监听从history栈里弹出url,所以我们就可以监听popState事件,进行相应操作,如下:

语法:element.addEventListener(event,function,useCapture);

参数:

element:文档节点、document、window 或 XMLHttpRequest

event:事件类型,如"click" 或 "mousedown"

function:事件触发后调用的函数或者是实现了EventListener接口

useCapture:布尔值,用于描述事件是冒泡还是捕获,参数可选,默认false(冒泡)

注意:event不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick"

事件冒泡还是捕获?

事件传递方式有两种:冒泡、捕获、

事件传递定义了元素触发的顺序,如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?

在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型:

addEventListener(event, function, useCapture);

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

示例:手机端监听物理返回键

pushHistory();

function pushHistory() { 

var state = { 

title: "title",     //可以给null值

url: "#"    //可以给null值

}; 

window.history.pushState(state, "title", "#");     

}

//监听到popState事件要执行的操作

window.addEventListener("popstate", function(e) { 

//该干嘛干嘛

}, false);    //false表示冒泡

以上是个人见解,看下能不能帮得上