通过iframe查看时自定义网站的最佳方式?

时间:2011-06-18 05:16:37

标签: html ruby-on-rails-3 iframe

我有一个网站,用户需要通过两种方式访问​​我们的资料:

  1. 来自网站本身
  2. 从嵌入到其他网站的iframe
  3. 我的网站非常好地处理#1,现在我正在尝试将其功能扩展到可以轻松嵌入的iframe。基本上,我需要摆脱网站标题,网站页脚,并为通过iframe显示的每个页面更改一些CSS(用户需要能够使用此iframe导航相当多的页面)。

    尝试使用<iframe>代码时,我的网站会显示正常情况,并在iframe中显示其标题栏,页脚等。

    在更改布局和CSS时,允许用户浏览网站的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以检测是否通过Javascript从iframe查看页面,方法是将其添加到“domready”事件(取决于框架):

var isInIFrame = (window.location != window.parent.location) ? true : false;

将受影响区域包裹在容器中,并display=none;通过iframe访问时隐藏的内容。

答案 1 :(得分:0)

我会为iframe页面制作另一个布局,例如app/views/layouts/iframe.html.erb,它没有你常用的页眉和页脚,可能有不同的CSS等等。

然后,您需要在适当的时候让控制器操作在渲染时使用该布局。如果您明确调用render,则可以这样做:

render "show", :layout => "iframe"

但是在控制器级别设置它可能更简单:

class SomeController < ApplicationController
    layout "iframe", :only => "show"
end

你也可以把你的逻辑用于选择正确的布局(不管它是什么 - 我认为这不是问题的主旨)到一个方法中:

class SomeController < ApplicationController
    layout :current_layout

private
    def current_layout
        # Return the correct layout for the current request.
        params[:iframe] ? "iframe" : "application"
    end
end