2011-02-03 84 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。不需要在控制器中發瘋。