蓝天,小湖,湖水中一方小筑

Rails - Reload Parent Page in iframe

最近碰到的一个问题,弹出的 iframe 窗口在做完操作并把结果返回给 controller 后,调用 renderredirect_to 时都只会刷新 iframe 中的内容,而不会将整个页面都刷新。尝试在 iframe 中提交表单时关闭 iframe 窗口,但是依然无效。最后发现还是需要借助于 Javascript ,最后的解决方案如下:

class FooController < ApplicationController
  def parent_reload
    render text: "<script>window.parent.location.reload();</script>"
  end

  def parent_redirect_to(url)
    render text: "<script>window.parent.location.href='#{url}';</script>"
  end
end

就是直接把 Javascript 以 HTML 的形式返回给浏览器端,浏览器端在收到内容后自动执行其中的脚本。