使用HTML5 History API,我创建了如下内容:
我想这样做的原因是我想在服务器端填充页面,而不想让客户端代码来完成。如果我删除
有没有解决这个问题的方法?
(function (d, w) {
$(function () {
$("#indicator").hide();
if (typeof history.pushState !== 'undefined') {
$("#citylinks a").click(function (e) {
history.pushState({ path: this.href }, '', this.href);
act(this.href);
e.preventDefault();
});
w.onpopstate = function (event) {
act(d.location);
};
}
function act(location) {
$("#results").hide();
$("#indicator").show();
$.getJSON(location, function (data) {
$("#results").html(data.result);
$("#results").fadeIn();
$("#indicator").hide();
});
}
});
})(document, window);
完整代码在这里:
我在这里遇到的问题是,我不想在页面第一次从服务器加载时触发w.onpopstate
事件。我想这样做的原因是我想在服务器端填充页面,而不想让客户端代码来完成。如果我删除
w.onpopstate
事件,我将无法捕获history.go()
事件。有没有解决这个问题的方法?
windows.onpopstate
事件上都运行。我试图通过检查window.onpopstate
事件是否为null
或undefined
来防止这种情况,但是没有成功。 - tugberkonpopstate
,因此它们不符合标准。 - Simone