有关 window.history.pushState 的帮助

2024-05-14

我需要语法方面的帮助。

我的网站使用 AJAX 在 #board div 中加载博客文章,然后单击 #close 将其关闭。当我加载帖子时,网址变成这样http://www.visualise.ca/#!/anne-au-cherry http://www.visualise.ca/#!/anne-au-cherry我想回到http://www.visualise.ca/ http://www.visualise.ca/当我关闭帖子时。以下给了我http://www.visualise.ca/#/ http://www.visualise.ca/#/

$("#close").live("click", function(event) {
    $("#board").slideUp("slow");
    window.location.hash = "#/";
    window.history.pushState(null,null,site_url+"/");
    return false;
});

1)有人可以帮忙吗?

2)如果浏览器不支持html5怎么办?

非常感谢您的时间和帮助。

更新:这有效,我的“site_url”变量中有一个拼写错误。


PushState 不是对哈希的操作。如果你希望它

PushState 正在更改 url 而不更改页面:

如果你把历史看作一个数组,history = [];

您打开浏览器的空首页并转到 page1.html

现在历史是=['page1.html'].

如果您使用 URL page2.html 从 page1.html 触发 PushState,那么历史记录现在是['page1.html','page2.html']地址栏显示page2.html。

如果浏览器不支持pushState,它什么也不做。所以对于你的例子:

$("#close").live("click", function(event) {
    $("#board").slideUp("slow");
    window.history.pushState(null, null, site_url+"/");
    return false;
});

当你加载ajax时:

window.history.pushState(null,null,site_url + "/" + ajax_url);

如果你想使用哈希进行操作,你可以这样做:

$("#close").live("click", function(event) {
    $("#board").slideUp("slow");
    window.location.href = "#/"
    return false;
});

当你加载ajax时:

window.location.href = "#/" + ajax_url

如果您使用 PushState,请注意 url 可能会结束指向您没有的子文件夹中的操作,因此您需要某种 .htaccess 重写代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有关 window.history.pushState 的帮助 的相关文章

随机推荐