页面中有一些ajax调用。我所做的是使用历史API来更新历史。在页面/测试中,我创建一个更新历史记录的ajax请求,并将url设置为/ test?query = true。在pop状态下,根据当前url调用ajax。
// Called in click event for the ajax call to create the history.
var stateObj = { query: 'query' };
history.pushState(stateObj, null, ?query=true);
// Called on the popstate
window.onpopstate = function(event) {
$.ajax({
method: 'get',
url: window.location.href,
dataType: 'script'
});
}
现在,当我将状态pused和url更新为/ test?query = true时,我转到其他页面/ test2并单击浏览器返回按钮,浏览器向我显示来自我的js.erb文件的原始js代码。