2012-03-01 29 views
8

我感到困惑在哪裏放置JavaScript函數:哪裏可以放置JavaScript函數:<head>? <body>?或者</html>之後?

當他們應該頭部 內把當身體 而內聯,當關閉HTML標記之後?

感謝

+1

重複的http://stackoverflow.com/questions/196702/where-to-place-javascript-in-a-html-file – jacktheripper 2012-03-01 16:40:20

+0

我見過這個問題不少次,但我不記得「'」作爲一個選項之後「。 – Brandon 2012-03-01 16:41:43

+0

我把它放在結束身體標記 – 2012-03-01 16:43:49

回答

9

的規則是朝三暮四這一點,有沒有正確或錯誤的方式只有更好的和不太好。 (井</html>錯誤)

一般來說,只有在該文件在一些瀏覽器*咳嗽* IE *咳嗽加載JavaScript中的文件的head可能會阻止頁面的渲染*。這是由於同時連接的限制。所以有些人把放在之前html的標籤。您可以使用庫異步加載JavaScript以避免此阻塞。

如果您正在使用一個庫,或者在執行代碼之前檢查要加載的DOM,那麼確實沒有放置它的位置的問題。但如果你不這樣做,最好把它放在最後。

+0

後我不知道誰低估了你,但我upvoted取消它,因爲我一般同意你 – soniiic 2012-03-01 17:04:19

+0

謝謝@soniic ...與這樣一個普遍的問題你怎麼能不回答一般... – JKirchartz 2012-03-01 17:32:45

+0

因此,總結到目前爲止的3個答案: 可以將javascript放在head&/ head內,並放在body&body中。 我有一些我的/ html後。讓人驚訝。 – 2012-03-05 22:02:15

1

爲了使整個頁面可以使用的功能,總是可以安全地使用JavaScript。請注意,這可能會阻止加載文檔的其餘部分,因此如果您要加載非常大的或外部的Javascript,則可能希望在內部結束時以內聯方式加載它們。

Javascript inline將在執行時變爲可用。這允許您在頁面元素加載時有條件地加載JS。

JavaScript應始終位於<head><body>之後,永遠不會在</html>之後。

1

我同意,從未見過(也不推薦)在html之後。另外,如上所述,阻塞是關心的問題。我經常使用的腳本引用是yepnope(異步js加載器和測試tid位(現在包含在modernizr中))和一個內嵌js的小塊,位於身體標記的末尾,用於加載引導程序js文件。

在該文件中,我使用另一個yepnope請求異步加載其他需要的資產,並啓動初始化方法。

我也已經將我的Google Analytics代碼放在最終的yepnope塊中,這樣即使在js應用程序啓動之後,也是最後一次加載。

相關問題