2011-02-03 87 views
4

我有内容的其他网站的一个Rails应用程序需要通过iframe来访问。 内容应该有不同的布局上的网站显示(没有菜单栏等) 我做了名为iframe.html.erb 一个新的布局文件,如何检查,该页面是否被称为形式的外部IFRAME所以当正确的布局文件被使用?不同布局的iframe

回答

8

据我知道,当你在做

<iframe src="www.google.pl"></iframe> 

你有过布局或样式的iframe页面显示的无控制,除非你自己的页面,并可以使它看起来任何你喜欢的。

EDITED

如果你显示你自己的网站是这样的:

<iframe src="/some_site_that_i_can_change_code_in?from=iframe"></iframe> 

,然后在some_site_that_i_can_change_code_in的控制器:

if params[:from] == "iframe" 
    render :layout => "for_iframe" 
else 
    render :layout => "normal" 
end 
+0

我知道,如何设置一个iframe。我的问题是,如何告诉我的Rails应用程序该页面是从iframe调用的。 – Arwed 2011-02-03 09:14:52

5

当服务iframe时,控制特定布局和内容的一种好方法是注册“iframe”mimetype。

## config/initializers/mime_types.rb 

Mime::Type.register 'text/html', "iframe" 

创建一个与控制器操作相匹配的视图,即:show.iframe.haml。然后,当请求进入format: iframe时,它将呈现iframe版本。

这样,你可以精确控制的其他站点上的iframe。不需要在控制器中发疯。