【发布时间】:2011-11-14 16:03:23
【问题描述】:
我正在使用 History.js 使我的 ajax 页面可收藏并获得预期的后退/前进浏览器按钮体验。在 Safari 中一切正常,但在 Firefox 6 中,如果我离开我的网站然后使用 hte 后退按钮返回,我会得到 javascript 而不是页面:
- 转到 mysite.com/user/1/post_board
- 点击帖子过滤器,地址更改为 mysite.com/user/1/post_board?filter=one
- 在地址栏中输入 google.com
- 按下返回按钮
- 我看到在第 2 步加载了 javascript
发生了什么?我做错了什么?
代码如下:
// Bind to StateChange Event
History.Adapter.bind(window,'statechange',function(e)
{
var state = History.getState();
eval(state.data.function_rest + "("+JSON.stringify(state)+");");
History.log(state);
});
$('.message_filter').bind('click', function()
{
History.pushState({"function_rest":"restore_post_board_widget"}, document.title, this.href);
return false
});
function restore_post_board_widget(state)
{
$.getScript(state.url);
}
感谢您的帮助。
【问题讨论】:
-
网址
mysite.com/user/1/post_board?filter=one是否总是返回HTML?还是有时会返回 JavaScript? -
@Shef:我愿意接受有关如何处理历史管理的建议。使用 eval 可以提供相当大的灵活性,但我还是 Javascript 的新手:stackoverflow.com/questions/7340906/…
标签: javascript firefox browser-history history.js