Firefox 后退按钮未按预期工作:显示 javascript 而不是 html

发布于 2024-12-04 00:50:53 字数 914 浏览 1 评论 0原文

我正在使用 History.js 使我的 ajax 页面可添加书签并获得预期的后退/前进浏览器按钮体验。在 Safari 中,一切都很好,但在 Firefox 6 中,如果我离开网站,然后使用后退按钮返回,我会得到 javascript 而不是页面:

  1. 转到 mysite.com/user/1/post_board
  2. 单击帖子过滤器,地址更改为mysite.com/user/1/post_board?filter=one
  3. 在地址栏中输入 google.com
  4. 按后退按钮
  5. 我看到第 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);
}

感谢您的帮助。

I am using History.js to make my ajax pages bookmarkable and to have the expected back/forward browser button experience. In Safari all works great but in Firefox 6 if I leave my site and then go back using hte back button I get the javascript instead of the page:

  1. go to mysite.com/user/1/post_board
  2. click on post filter, address changes to mysite.com/user/1/post_board?filter=one
  3. enter google.com in address bar
  4. push the back button
  5. I see the javascript loaded at step 2

What is going? What I am doing wrong?

Here is the code:

//  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);
}

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

提赋 2024-12-11 00:50:53

只需添加:

window.onunload = function(){};

这就是我得到答案的地方:

在 Firefox 历史记录中回顾之后, JavaScript 不会运行

just add:

window.onunload = function(){};

this is where I got the answer:

After travelling back in Firefox history, JavaScript won't run

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文