【问题标题】:Javascript history.back() not working in rails appJavascript history.back() 在 Rails 应用程序中不起作用
【发布时间】:2009-08-06 14:37:54
【问题描述】:

嘿,我正在单击 rails 应用程序中的“返回”按钮时调用 history.back()。但什么也没有发生。浏览器中有历史记录——按浏览器的后退按钮会带我回到正确的页面。

但是,如果我使用 history.go(-2),页面会正确返回。那么为什么我必须告诉 javascript 返回两页而不是一页呢?

任何想法如何调试这个?

我在 FF 和 Safari 中试过这个。

谢谢!

--附加信息:

好吧,我又玩了一些,这很有效:

<a href='javascript:' onclick='history.back();'>

原来的代码是:

<a href='#' onclick='history.back();'>

有什么区别? (请注意,这曾经可以工作,但发生了一些变化,导致后一个链接不起作用)

【问题讨论】:

    标签: javascript ruby-on-rails


    【解决方案1】:

    您是否尝试过添加 return false?所以:

    <a href='#' onclick='history.go(-1);return false;'>
    

    【讨论】:

    • 是的,添加 'return false' 修复了它!谢谢。那么这是推荐的方法吗?
    • 我总是尽量避免使用“后退”按钮,因为它们本质上是不可预测的,但是如果您的问题是关于返回 false 的更具体的问题,那么当您想运行 javascipt 时应该始终使用它而不是执行实际操作(在本例中为“单击”),因为您的代码所说的是“返回页面,然后转到 currentpage.html#”,这是您的问题
    【解决方案2】:

    如果您使用link_to_function,它会自动在末尾添加return false

    <%= link_to_function "Go back", "history.back()" %>
    

    【讨论】:

      【解决方案3】:

      我建议使用&lt;%= link_to :back %&gt;。在这里阅读更多:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#M002142

      【讨论】:

        猜你喜欢
        • 2013-09-30
        • 1970-01-01
        • 2018-06-09
        • 1970-01-01
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        • 1970-01-01
        • 2013-12-31
        相关资源
        最近更新 更多