我有一个网站,用户需要通过两种方式访问我们的资料:
我的网站非常好地处理#1,现在我正在尝试将其功能扩展到可以轻松嵌入的iframe。基本上,我需要摆脱网站标题,网站页脚,并为通过iframe显示的每个页面更改一些CSS(用户需要能够使用此iframe导航相当多的页面)。
尝试使用<iframe>
代码时,我的网站会显示正常情况,并在iframe中显示其标题栏,页脚等。
在更改布局和CSS时,允许用户浏览网站的最佳方法是什么?
答案 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