Php 使用History.js刷新时没有持久状态
我最近在我的页面上实现了History.js,但脚本有问题。如果我进入索引页面,点击一个链接,事情就会正常运行。新内容被加载,没有页面刷新,所有导航链接仍然有效。但是,如果在使用其中一个链接后刷新,然后单击某个链接,则URL会更改,但内容不会更改。我不知道发生了什么事 “后退”和“前进”按钮工作正常,使用后我可以访问导航。下面是我正在使用的javascript:Php 使用History.js刷新时没有持久状态,php,jquery,history.js,Php,Jquery,History.js,我最近在我的页面上实现了History.js,但脚本有问题。如果我进入索引页面,点击一个链接,事情就会正常运行。新内容被加载,没有页面刷新,所有导航链接仍然有效。但是,如果在使用其中一个链接后刷新,然后单击某个链接,则URL会更改,但内容不会更改。我不知道发生了什么事 “后退”和“前进”按钮工作正常,使用后我可以访问导航。下面是我正在使用的javascript: function fire() { var History = window.History, State = History.get
function fire()
{
var
History = window.History,
State = History.getState();
$('a').live('click', function(e)
{
e.preventDefault();
var path = $(this).attr('href');
var title = $(this).attr('title');
History.pushState('ajax',title,path);
}
);
// Bind to state change
// When the statechange happens, load the appropriate url via ajax
History.Adapter.bind(window,'statechange',function()
{
load_ajax_data();
History.log(State.data, State.title, State.url);
}
);
function load_ajax_data() {
State = History.getState();
$.post(State.url, function(data) {
$("#content").load(State.url + ' #contentDiv');
});
}
}
$(document).ready(fire());
我知道这是一个老问题,但我有同样的问题,刷新页面后导航不起作用,但你可以看到url链接 要修复此问题,只需更新至History.js的最新版本 这是我的代码:
//Under Document.ready
if (History.enabled) {
var History = window.History;
History.Adapter.bind(window, "popstate", function() {
var State = History.getState();
History.log(State.data, State.title, State.url);
if (JSON.stringify(State.data) != "{}") {
var obj = State.data.content;
search = State.data.search;
$("#content").html(obj);
$("#search").val(search);
}
});
}
因为我只想在ajax请求上推送状态:
//under .ajaxStop
History = window.History;
if (History.enabled) {
var grid = $("#content").html();
var search = $("#search").val();
History.pushState({ content: grid, search: search }, "Search", "?" + $("#FormID").serialize());
}
其中,#content是呈现局部视图的div,#search是文本框元素
注意:我使用的是Histyori.js 1.7,更新到1.8后,一切都开始工作。
我希望这对其他人有用。History.js的文档说,它解决了“网站离开后,状态数据和标题不会持续存在,然后返回(包括页面刷新)”这一浏览器问题,这意味着我可以使用导航链接,刷新页面,导航应该仍然有效。我不知道为什么没有。我将用我在javascript文件中使用的代码更新我的问题。这还没有被修复,所以如果有人有任何想法,请分享!你有没有找到解决刷新问题的方法,就像我的演示应用history.js一样。请回复。谢谢