2015-11-26 75 views
-2

我對domready,onload,body,head有所懷疑。當我連接一些js到頭時,它不起作用。否則,它在體內工作。domready,onload,body,head的含義是什麼?

我注意到在JSFIDDLE中,它提到了。

這意味着什麼和差異?

請問你能解釋一下嗎?

+2

已經在stackoverflow上解決了[dom ready vs onload](http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready) –

+1

'domready'和'onload'是可比較的,但是' '和''是非常不同的。去閱讀任何HTML教程。 –

回答

0

<head>包含所有關於Page屬性,CSS和JavaScript的信息。儘管CSS和JavaScript也可以包含在主體中。 Head將包含Page的元信息,標題,基本URL等。

<body>包含正文的實際內容。訪問該網站的用戶實際上看到或與之互動。

DOM是文檔對象模型。這是基本結構,或者你可以說頁面所在頁面的骨架。

domready是一旦DOM完成加載就會觸發的事件。例如:假設一個頁面只有一個圖像。它將等待圖像標籤被解析。只要收到圖像標籤,它就會被觸發。它不會等待整個圖像從源文件加載。

onload是加載完成(DOM +內容)頁面時觸發的事件。在donready前面的例子中,onload將等待從源獲取的圖像,然後將被解僱。

3

訪問DOM的Javascript一定不能執行直到DOM已經被加載。

在文檔的<head>部分中運行的代碼將在加載DOM之前執行,因此如果它試圖在DOM上操作,則DOM將僅爲空。

在文檔的<body>部分中運行的代碼將在該腳本標記之前但在腳本標記之後的任何DOM元素之前執行AFTER之後的所有DOM元素。

如果您在</body>標記之前的<body>部分的最末尾放置了<script>標記,那麼當該腳本執行時,整個DOM將準備就緒。

DOMContentLoaded(其中jsFiddle調用onDomReady)是一個事件,當DOM現在加載並且可供腳本訪問時觸發。如果您在DOMContentLoaded事件觸發時運行代碼,那麼DOM將準備好讓您的代碼在該點訪問。

window.onload是一個事件,當DOM現在被加載並且在頁面的HTML中指定的任何資源也被加載時(如圖像),將觸發該事件。這總是在DOMContentLoaded事件之後觸發。

這裏你可以看到這個問題的進一步說明:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it


如果代碼工作時,在<body>,但不是在<head>,那麼你可能運行的代碼在<head>標籤太早前DOM已準備就緒。您可以將其保留在<body>的末尾,或者將其掛接到其中一個加載事件,然後如果需要,可以將其放入<head>標記中。

+0

謝謝你的好解釋。我很容易理解。 – Darious