Popstate事件处理程序似乎不起作用
popstate event handler seems not to work
我有一个'popstate'事件处理程序的问题,这是我的代码:
window.addEventListener("popstate", function (event){
if (event.state) {
alert('abc')
}
});
// The data object is arbitrary and is passed with the popstate event.
var dataObject = {
createdAt: '2011-10-10',
author: 'donnamoss'
};
var url = '/posts/new-url';
history.pushState(dataObject, document.title, url);
我期望这段代码在执行时会弹出一个警告框,但是什么都没有发生。
这里有什么问题吗?
谢谢。
pushState
不触发popstate
事件,只有点击后退/前进按钮(或使用退格键)或调用history.back()
/history.go(n)
才能触发此事件。
同样,在webkit浏览器中,popstate
事件将在页面的onload
事件之后触发,但Firefox和IE没有这种行为。
不会的,
根据MDN文档
注意,仅仅调用history.pushState()或history.replaceState()不会触发popstate事件。popstate事件只能通过浏览器操作触发,比如点击后退按钮(或者在JavaScript中调用history.back())。
再次根据这个问题,当您调用pushState()
时,popstate
事件不会在Chrome
中触发
根据定义,history.pushState()
将不会触发popstate
事件。
在导航到会话历史条目时,在某些情况下触发popstate事件。
此事件仅在导航到历史条目时触发,通过按后退/前进按钮或history.go/back
。
相关文章:
- 在phonegap应用程序内部重定向不起作用
- Nano Scroller在引导程序DropDown和Model Box中不起作用
- 鼠标事件在OpenLaszlo应用程序中不起作用
- JavaScript onScroll在谷歌应用程序脚本web应用程序中不起作用
- 回发前所需的字段验证程序不起作用
- getRange(单元格)在谷歌应用程序脚本中不起作用
- 引导程序选择在jquery pep中不起作用
- 引导程序3.3.4工具提示不起作用
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- event.stopPropagation() 在 jQuery 事件处理程序中不起作用
- 为什么我的引导程序的下拉菜单不起作用
- Jquery 引导程序验证 asp.net 母版页不起作用
- Chrome 扩展程序权限不起作用
- 引导程序的下拉列表不起作用
- 转换元素在引导程序中不起作用
- Typescript 此关键字在 jquery 事件处理程序中不起作用
- javascript_include_tag'应用程序'不起作用
- 如果应用程序托管在IIS上,则Javascript window.location.htm不起作用
- Angular.js ajax和应用程序不起作用
- window.open()在使用phone gap的iOS应用程序上不起作用