2009-11-26 66 views

回答

4

您不需要修改body標籤以將Javascript函數與onload關聯。不用在body上使用onload屬性,你可以在外部Javascript文件中將函數賦值給window.onload。

有更高級的方法,使用事件監聽器做同樣的事情(觸發頁面加載函數),這將允許在頁面加載之前稍微/一段時間添加幾個監聽器函數或觸發DOM準備就緒函數。只要設置window.onload是最簡單的方法,並將保持你的Javascript不顯眼。

2

bodyhead標籤通常會在佈局中的一種來定義。佈局默認位於app/views/layouts

+0

我已經notticed的頭部和身體的標籤佈局文件中,但......那是什麼與我的觀點綁在佈局... 我的意思是,我不能看到佈局之間的一對一的關係和意見。 如何以及在哪裏我可以配合視圖佈局。 謝謝 – flyer88 2009-11-27 13:18:28

+0

存在一個很好的關於這個主題的Rails指南(http://guides.rubyonrails.org/layouts_and_rendering.html)。我建議你檢查它,因爲它解釋了佈局/視圖/部分渲染背後的所有「魔術」。 – mtyaka 2009-11-27 13:32:53

2

EricBréchemier和mtyaka都是對的。

另一種方法(如果你需要自定義元素添加到基於每個視圖基礎上指定的頁眉/頁腳,你會想要做這樣的事情與產量塊

這裏有一個例子讓標題要在每頁的基礎上重寫,但同樣technqiue適用於HTML head標籤設置script標籤。

app/views/layouts/posts_layout.html.erb

<html> 
    <head> 
    <title><%= yield(:page_title) || "My awesome site"%></title> 
    </head> 
    <body><%= yield %> </body> 
</html> 

app/views/posts/index.html.erb

<%= content_for :page_title, "post listing" %> 
<h1>Here are your posts...</h1> 
+0

非常感謝您的評論。我一直在閱讀** content_for **標籤。非常有趣,但在我看來,我不能以這種方式添加屬性和事件,我可以嗎? – flyer88 2009-11-27 13:03:03