鉴于带有ajax导航的webapp,您打算使用html5的历史导航。
但是:绑定到popstate事件时它不会被触发。页面加载时除外:
如果HTML5可用(它被正确检测到,那么演示在Chrome中也可以像FF一样运行):
// Callback
function historyChangeHandler(data) {
console.log(data);
}
// Bind
$(window).bind('popstate', historyChangeHandler);
// Trigger
$("a").click(function(e) {
var url = "/";
// ...
console.log("clicked");
history.pushState({url: url}, "", url);
return false;
});
什么行不通:
我尝试了什么:
工作原理:
我想念的任何线索?
答案 0 :(得分:2)
popstate
。当用户使用后退/前进按钮导航时调用它。
一切都按照预期的方式运作。
答案 1 :(得分:1)
为什么需要触发popstate事件?为什么不直接调用你的函数?
$("a").click(function(e) {
var url = "/";
// ...
console.log("clicked");
history.pushState({url: url}, "", url);
historyChangeHandler({url: url});
return false;
});