Rails:重定向到外部站点之前显示警报
Rails: Display alert before redirecting to external site
我想链接到一个外部网站,但在链接之前,我想显示一个对话框,上面写着"您正在被重定向"。我尝试使用flash.now["alert"]
进行此操作,但没有成功;我只是在第一次重定向并返回我的网站后才看到我的消息。
我的模板包含一个带有选择框的表单,根据选择的选项,访问者将被引导到网站上的另一个页面或外部网站。
在控制器中,有一个实例变量设置为存储在数据库中的值。根据该值,它将重定向到外部网站或内部页面。
如何在重定向到外部网站之前显示小警报?如果这必须在javascript中完成,我如何将实例变量的值传递给javascript?
这可以很容易地在没有javascript的情况下完成。
只需制作一个名为OffsiteLinks的模型,或者其他什么。该模型将具有外部url。对象的显示路径将重定向到外部资源。这很好,因为你不需要显示外部链接,也不需要担心rel-nowfollow之类的东西,而且你可以在重定向之前增加一个命中计数器。
如果你想显示真实的链接,你会被javascript卡住。
事实上,我很抱歉。我误解了你问题的一部分。如果您需要消息,您将非常需要javascript来显示消息或执行重定向。。。
你可以通过在结果页面上显示"OK take me there link"来解决这个问题,对于没有js的用户。。。
Rails的link_to
帮助程序允许使用confirm: message
选项来执行您想要的操作。你想做的是定义一个助手:
def link_to_external(body, url)
link_to body, url, :confirm => 'You are being redirected'
end
现在您可以在模板中使用link_to_external
而不是link_to
:
link_to_external "Somewhere else", "http://example.com/"
如果您想花费时间,您可以使该助手更加健壮,以支持link_to
的所有选项(并允许自定义确认消息)。
如果你只想做一个这样的链接,你可以使用link_to
:
link_to "Somewhere else", "http://example.com/", confirm: 'You are being redirected'
如该回答中所述。
- 引导模式在站点中未正确显示
- 如何从显示提要的外部服务器或站点解析RSS URL
- 显示来自外部站点的 html
- 如果站点上存在多个滑块,则显示 Jquery UI 滑块的值
- 谷歌浏览器不显示一个站点的alert()弹出窗口
- 套接字 - 客户端站点上不显示任何数据
- 如何在 ace 编辑器中显示 html 站点的代码
- 显示FB登录,仅当当前站点之前未登录时
- 强制“访问完整站点”链接以始终显示完整站点
- jquery/JavaScript 显示隐藏内容并将站点向右推送
- Rails:重定向到外部站点之前显示警报
- 使用按钮在任何站点上显示模态JS对话框
- 在任何站点上显示JS(jQuery)小部件,ASP.NET MVC服务器端
- 在iframe中显示活动站点,作为父页面url的扩展
- 在显示/隐藏项目时保持站点位置
- 发送Post数据到远程站点并显示结果
- 为什么噩梦在特定站点上运行良好,但是当我尝试使用另一个站点时,它会显示错误
- 显示页面预览并在另一个站点中对其进行操作
- 浏览器默认在 javascript 警报框中显示站点 ip
- 显示站点的Javascript / CSS问题