ruby-on-rails - 如何通过浏览器历史实现“返回”的链接?
问题描述
文档说明了需要像这样做的事情:
url_for(:back)
但问题是这个例子只能运行一次,然后就会出现两页循环。也就是说,原来:back
不匹配浏览器历史记录,而只匹配之前的路由。
但是如何按照浏览器的历史来实现“返回”呢?
解决方案
:back
使用HTTP_REFERER
导致您所描述的行为的标题。
如果你想使用浏览器的历史,你必须使用浏览器的工具,因为它是你历史的唯一可靠来源。您只需使用history.back()
. 这是一个如何内联使用它的示例:
<%= link_to "Back", "javascript:history.back()" %>
根据您构建前端的方式、正在使用的库(例如 jQuery)等,您可能希望将其放入单独的 JS 文件并从那里调用它。这是一个如何使用 jQuery 执行此操作的示例:
<%= link_to "Back", "#", class: "back-button" %>
$(document).on("click", ".back-button", function(event) {
event.preventDefault()
history.back()
})
推荐阅读
- javascript - 显示输入的名称?
- java - println方法以错误的顺序输出
- javascript - 如何对自定义帖子类型 Ajax 结果进行分页
- ios - Swift 数据模型在明显有价值的情况下展开后返回 nil
- docker - How do I move a container from one node to another?
- powershell - PowerShell 应用程序部署工具包 - 显示注销框?
- dart - 如何基于包含 scheme+host+port 的字符串创建 URL
- java - 理解子接口中的重写接口方法
- amazon-web-services - Amazon Amplify/Route 53 上的自定义域上的 ERR_SSL_PROTOCOL_ERROR
- single-sign-on - 不同环境的单点登录服务 URL