在Rails的“返回”链接中是否可以调用浏览器的“返回”功能?
link_to_function "Back", "history.back()"
在Rails 4中,这个方法已被移除。请参考Andreas的评论。
link_to_function
,你会遇到一个错误信息:undefined method 'link_to_function' for #<#<Class
。 - Jay Killeenonclick: 'history.back()'
发送,而不是在URL参数中发送(当我尝试在Firefox中使用时,它无效)。 - starfry这在Rails 5.1中与Turbolinks一起工作。
link_to 'Back', 'javascript:history.back()'
<a href="javascript:history.back()">Refine Search</a>
我从@cpm的答案中抄袭了这个,只是当我粘贴生成的代码<a href="javascript:history.back()">Refine Search</a>
时,link_to("Refine Search", :back)
不能完成我想要的工作,而它可以完美地完成。
link_to("Refine Search", :back)
只会保存最后一个没有参数的操作,并将您带回那里,而您的解决方案使用了js。 - ohhhlink_to
的确切语法是什么? - ohhhlink_to("Hello", :back)
来生成<a href="javascript:history.back()">Hello</a>
。javascript:history.back()
。已检查来自 Rails 3.0 - 6.1 的代码。 - notapatch这将与浏览器的后退按钮类似,请试一下:
<%= link_to '返回', 'javascript:history.go(-1);' %>
注意用户rthbound的评论!正如他所指出的那样,使用符号:back
的link_to
并不总是生成一个“真正”的后退事件,就像用户单击浏览器的后退按钮一样。它也可能是重新提交加载当前视图的操作。
Rails4.2.6文档关于link_to
和符号:back
的解释如下:
使用
:back
符号代替选项哈希将生成一个链接到引用页(如果不存在引用页,则将使用JavaScript后退链接)。
link_to "cancel", :back
,则可以实现一个帮助方法来链接到记录的索引路径或显示路径(即teams_path
或team_path(@team)
)。module CancelFormButtonHelper
def cancel_button(record)
index_path = record.class.to_s.pluralize.downcase + "_path"
path = record.persisted? ? record : eval(index_path)
link_to "Cancel", path
end
end
然后可以在表单中使用<%= cancel_button @team %>
,例如。
使用
link_to_function "Back", "history.back()"
看起来与在浏览器中点击返回按钮完全相同。当您回到时,所有输入的表单数据仍然存在。
你可以使用JS函数window.history.back()。
= link_to 'Back', onclick: "window.history.back();"
request.referer
存在时,不会使用javascript:history.back()
。 - rthbound