Javascript 使用带有history.pushstate和popstate的后退按钮时,如何触发更改?
对于js,我几乎是一个新手,所以如果我遗漏了一些非常简单的东西,我很抱歉 基本上,我已经对history.pustate和popstate的使用做了一些研究,并通过使用以下命令将查询字符串添加到url的末尾(Javascript 使用带有history.pushstate和popstate的后退按钮时,如何触发更改?,javascript,html,back-button,pushstate,Javascript,Html,Back Button,Pushstate,对于js,我几乎是一个新手,所以如果我遗漏了一些非常简单的东西,我很抱歉 基本上,我已经对history.pustate和popstate的使用做了一些研究,并通过使用以下命令将查询字符串添加到url的末尾(?v=images)或(?v=profile)…(v表示“查看”): var url = "?v=profile" var stateObj = { path: url }; history.pushState(stateObj, "page 2", url); 我想这样做,以便我可以将内
?v=images
)或(?v=profile
)…(v
表示“查看”):
var url = "?v=profile"
var stateObj = { path: url };
history.pushState(stateObj, "page 2", url);
我想这样做,以便我可以将内容加载到div中,但不必像使用.load()
函数那样重新加载页面
然后我使用了以下代码:
$(window).bind('popstate', function(event) {
var state = event.originalEvent.state;
在$(document).ready()
部分中,稍后仅在
标记内尝试,但均无效
我不知道如何使其在我使用“后退”按钮时内容发生更改,或者至少使其能够触发我自己的函数来执行此操作;我想这和国家目标有关?!我只是在网上找不到任何能清楚解释这个过程的东西
如果有人能帮助我,那将是令人惊讶的,并提前感谢所有帮助我的人 只有当存在状态时,
popstate
才包含状态
事情是这样的:
pushState
pushState
。结果,onpopstate
事件被激发,状态为null
。因此,当它为null
时,意味着应该加载原始页面
您可以实现它,以便一致地调用history.pushState
,并且您只需要提供如下状态更改函数:
也许这不是最好的解决方案,也可能不适合你的需要。但对我来说,最好是重新加载页面。因此页面是一致的,它根据当前查询字符串加载所有内容
$(document).ready(function() {
$(window).on("popstate", function (e) {
location.reload();
});
});
非常感谢您对@pimvdb的帮助,更感谢您的快速回复。祝你一切顺利。非常感谢,这太完美了!您好,但是如果初始页面中的数据是由ajax从数据库动态生成的,如何做到这一点?
$(document).ready(function() {
$(window).on("popstate", function (e) {
location.reload();
});
});